button.setOnAction(new EventHandler<ActionEvent>() {
    @Override public void handle(ActionEvent e) {
        label.setText("Accepted");
    }
});

在上面的代码中,我们定义了按下按钮时将发生的情况。一切都很好,但是我想创建新的ActionListener,然后将其添加到我的按钮中。
通常,在JButton中,我可以像这样添加ActionListener:
button.addActionListener(someControllerClass.createButtonListener());

在上面的代码中,createButtonListener()返回ActionListener。

我的问题是:JButton addActionListener等效于什么?

最佳答案

如果你想重用EventHandler,像JavaFX Documentation中所述将其定义为:

EventHandler<ActionEvent> buttonHandler = new EventHandler<ActionEvent>() {
    @Override
    public void handle(ActionEvent event) {
        label.setText("Accepted");
        event.consume();
    }
};

现在,您可以通过以下方式将定义的buttonHandler添加到按钮的onAction中:
button.setOnAction(buttonHandler);

并从提供完整性删除选项的文档中引用:



为您带来:
button.setOnAction(null)

该文档还提供了一些示例,介绍了如何为特定事件添加处理程序-这是一本好书。

关于JavaFX将ActionListener添加到按钮,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40757911/

10-10 20:03