获取动态添加的按钮事件

时间:2016-04-24 02:36:50

标签: java javafx java-8 javafx-8

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

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);
    });

和此图片有更多解释

enter image description here

1 个答案:

答案 0 :(得分: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);
}