|  |  | | Using FXML to create a UI |  |  |  | 
   
|  import java.io.File;
 import java.io.FileInputStream;
 import java.util.ResourceBundle;
 
 import javafx.application.Application;
 import javafx.event.ActionEvent;
 import javafx.fxml.FXML;
 import javafx.fxml.FXMLLoader;
 import javafx.fxml.Initializable;
 import javafx.scene.Parent;
 import javafx.scene.Scene;
 import javafx.scene.control.MenuBar;
 import javafx.scene.input.InputEvent;
 import javafx.scene.input.KeyCode;
 import javafx.scene.input.KeyEvent;
 import javafx.stage.Stage;
 
 
 
 public class Main extends Application
 {
 
 public static void main(String[] arguments)
 {
 Application.launch(Main.class, arguments);
 }
 
 
 @Override
 public void start(final Stage stage) throws Exception
 {
 FXMLLoader f = new FXMLLoader();
 final Parent fxmlRoot = (Parent)f.load(new FileInputStream(new File("JavaFx2Menus.fxml")));
 stage.setScene(new Scene(fxmlRoot));
 stage.show();
 }
 }
 
 
 <?xml version="1.0" encoding="UTF-8"?>
 
 <?import java.lang.*?>
 <?import javafx.scene.*?>
 <?import javafx.scene.control.*?>
 <?import javafx.scene.layout.*?>
 
 <VBox id="vbox" prefHeight="400" prefWidth="800"
 xmlns:fx="http://javafx.com/fxml"
 fx:controller="MenuController">
 <MenuBar fx:id="menuBar" onKeyPressed="#handleKeyInput">
 <menus>
 <Menu text="File">
 <items>
 <MenuItem text="New"/>
 <MenuItem text="Open"/>
 <MenuItem text="Save"/>
 <MenuItem text="Save As"/>
 <SeparatorMenuItem  />
 <MenuItem text="Exit"/>
 </items>
 </Menu>
 <Menu text="Edit">
 <items>
 <MenuItem text="Copy"/>
 <MenuItem text="Cut"/>
 <MenuItem text="Paste"/>
 </items>
 </Menu>
 <Menu text="Help">
 <items>
 <MenuItem text="Search" disable="true"/>
 <MenuItem text="Online Manual" visible="false"/>
 <SeparatorMenuItem />
 <MenuItem text="About" onAction="#handleAboutAction"/>
 </items>
 </Menu>
 </menus>
 </MenuBar>
 </VBox>
 import java.util.ResourceBundle;
 
 import javafx.event.ActionEvent;
 import javafx.fxml.FXML;
 import javafx.fxml.Initializable;
 import javafx.scene.control.MenuBar;
 import javafx.scene.input.InputEvent;
 import javafx.scene.input.KeyCode;
 import javafx.scene.input.KeyEvent;
 
 
 public class MenuController implements Initializable
 {
 @FXML
 private MenuBar menuBar;
 
 /**
 * Handle action related to "About" menu item.
 *
 * @param event Event on "About" menu item.
 */
 @FXML
 private void handleAboutAction(final ActionEvent event)
 {
 provideAboutFunctionality();
 }
 
 /**
 * Handle action related to input (in this case specifically only responds to
 * keyboard event CTRL-A).
 *
 * @param event Input event.
 */
 @FXML
 private void handleKeyInput(final InputEvent event)
 {
 if (event instanceof KeyEvent)
 {
 final KeyEvent keyEvent = (KeyEvent) event;
 if (keyEvent.isControlDown() && keyEvent.getCode() == KeyCode.A)
 {
 provideAboutFunctionality();
 }
 }
 }
 
 /**
 * Perform functionality associated with "About" menu selection or CTRL-A.
 */
 private void provideAboutFunctionality()
 {
 System.out.println("You clicked on About!");
 }
 
 
 @Override
 public void initialize(java.net.URL arg0, ResourceBundle arg1) {
 menuBar.setFocusTraversable(true);
 
 }
 }
 
 
 
 |  |  |  |  |  |  | Related examples in the same category | 
 |