Reputation: 1678
I'm new to JavaFX. I created this simple menu.
MenuBar menuBar = new MenuBar();
// File menu - new, save, exit
Menu menu = new Menu("File");
menu.getItems().add(new MenuItem("New"));
menu.getItems().add(new MenuItem("Save"));
menu.getItems().add(new SeparatorMenuItem());
menu.getItems().add(new MenuItem("Exit"));
menuBar.getMenus().add(menu);
// Options menu - Preferences
Menu options = new Menu("Options");
options.getItems().add(new MenuItem("Preferences"));
menuBar.getMenus().add(options);
// Help menu - About
Menu help = new Menu("Help");
help.getItems().add(new MenuItem("About"));
menuBar.getMenus().add(help);
menuBar.prefWidthProperty().bind(primaryStage.widthProperty());
root.getChildren().add(menuBar);
primaryStage.setScene(scene);
primaryStage.show();
}
Can you tell me how I can call Java method when I click on a menu? Just for a start I wan to call this Java method when I click Exit
.
public void programExit(){
System.exit(0);
}
Upvotes: 1
Views: 1094
Reputation: 34498
Instead of menu.getItems().add(new MenuItem("Exit"));
write:
MenuItem menuItem = new MenuItem("Exit");
menuItem.setOnAction(new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent e) {
System.exit(0);
}
});
menu.getItems().add(menuItem);
Upvotes: 6