Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

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);

    }
}