I have a listener class that is networked into my phone to receive input from an application called TouchOSC. In that class, I can call methods whenever I press a button on my phone. What I need to do is to click a JavaFX button to trigger an event in that method whenever my computer receives the input from my phone. How would I trigger something like that?
Asked
Active
Viewed 5.2k times
1 Answers
38
Invoked when a user gesture indicates that an event for this ButtonBase should occur.
When a button is fired, the button's onAction
event handler is invoked.
The button's action, which is invoked whenever the button is fired. This may be due to the user clicking on the button with the mouse, or by a touch event, or by a key press, or if the developer programmatically invokes the fire() method.
Sample Code
Creates a button and automatically fires it four times.
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;
import java.io.IOException;
import java.util.stream.IntStream;
public class RapidFire extends Application {
private static int nClicks = 0;
@Override
public void start(Stage stage) throws IOException {
// setup button and action handler.
Button button = new Button("Click Me!");
button.setOnAction(event -> {
nClicks++;
System.out.println("Clicked " + nClicks + " times.");
});
button.setPadding(new Insets(10));
button.setPrefWidth(100);
// show the button.
stage.setScene(new Scene(button));
stage.show();
// fire the button a few times in succession.
IntStream.range(0, 4).forEach(
i -> button.fire()
);
}
public static void main(String[] args) {
launch(args);
}
}
Output of the sample is:
Clicked 1 times.
Clicked 2 times.
Clicked 3 times.
Clicked 4 times.

jewelsea
- 150,031
- 14
- 366
- 406
-
1This does not work. Fire won't fire the Action event I set in the other method. – Dylan Lee Blanchard Mar 30 '15 at 19:40
-
5Works for me. Unless I misunderstood your question, you probably have some other issue in your code which is preventing it from working as you expect. – jewelsea Mar 30 '15 at 20:13
-
3@DylanLeeBlanchard: be careful to implement button.setOnAction(). I made mistake that I have implemented event handler on button.setOnMouseClicked(). – sfelber Jan 17 '16 at 14:19