【问题标题】:get event of a button that is dynamically added获取动态添加的按钮事件
【发布时间】:2016-04-24 02:36:49
【问题描述】:

我有这段代码可以让用户添加附件文件,并删除每个文件的按钮,所以我的问题是如何在单击时获取按钮事件

btnAttachment.setOnAction(event -> {
        FileChooser fileChooser = new FileChooser();
        selectedFiles.addAll(fileChooser.showOpenMultipleDialog(null));
        for (File selectedFile : selectedFiles) {
            HBox hBox = new HBox();
            hBox.getChildren().addAll(
                    new Label(selectedFile.getName() + " ( " + selectedFile.length() / 1024 + "Ko ) "),
                    new JFXButton("", new ImageView(new Image("/resources/images/minus-circle.png")))
            );
            vbAttachment.getChildren().add(hBox);
        }
        spAttachment.setVisible(true);
    });

这个图片有更多的解释

【问题讨论】:

  • 什么是JFXButton
  • 它来自图​​书馆(jfoenix),我用它来设计

标签: java javafx java-8 javafx-8


【解决方案1】:

只需以通常的方式将侦听器添加到按钮即可。我不知道JFXButton 是什么,所以这就是使用常规JavaFX Button 的方法:

for (File selectedFile : selectedFiles) {
    HBox hBox = new HBox();

    Button removeButton = new Button("", new ImageView(new Image("/resources/images/minus-circle.png")));
    removeButton.setOnAction(evt -> {
        vbAttachment.getChildren().remove(hBox);
        // other code you need to execute when the button is pressed...
    });

    hBox.getChildren().addAll(
            new Label(selectedFile.getName() + " ( " + selectedFile.length() / 1024 + "Ko ) "),
            removeButton
    );
    vbAttachment.getChildren().add(hBox);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-07
    • 2011-10-20
    • 2012-10-10
    • 2016-03-06
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多