button.setOnAction(new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent e) {
label.setText("Accepted");
}
});
In the code above we are defining what will happen when we press the button. This is all good but I wanna create new ActionListener and then add it to my button. Normally in JButton I can just add ActionListener like this:
button.addActionListener(someControllerClass.createButtonListener());
In code above createButtonListener() returns ActionListener.
My question is: What is the equivalent of JButton addActionListener ?
To add an action listener, you just call addActionListener from Abstract Button.
A Button can fire an ActionEvent. A Button can fire a MouseEvent. A Button can fire a KeyEvent. A TextField can fire an ActionEvent.
Use the setOnAction method of the Button class to define what will happen when a user clicks the button.
JavaFX enables you to design with Model-View-Controller (MVC), through the use of FXML and Java. The "Model" consists of application-specific domain objects, the "View" consists of FXML, and the "Controller" is Java code that defines the GUI's behavior for interacting with the user.
If you want to e.g. reuse an EventHandler
, define it like described in JavaFX Documentation as:
EventHandler<ActionEvent> buttonHandler = new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
label.setText("Accepted");
event.consume();
}
};
You can now add your defined buttonHandler
to the onAction
of your button via:
button.setOnAction(buttonHandler);
And citing from the documentation providing the remove option for completeness:
To remove an event handler that was registered by a convenience method, pass null to the convenience method, for example,
node1.setOnMouseDragged(null).
Resulting for you in:
button.setOnAction(null)
The documentation furthermore provides some examples how to add handler for specific events - it's a good read.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With