1  import javafx.application.Application;
  2  import javafx.scene.Scene;
  3  import javafx.scene.control.ContextMenu;
  4  import javafx.scene.control.MenuItem;
  5  import javafx.scene.image.ImageView;
  6  import javafx.scene.layout.Pane;
  7  import javafx.stage.Stage;
  8  
  9  public class ContextMenuDemo extends Application {   
 10    @Override // Override the start method in the Application class
 11    public void start(Stage primaryStage) {   
 12      ContextMenu contextMenu = new ContextMenu();       
 13      MenuItem menuItemNew = new MenuItem("New",
 14        new ImageView("image/new.gif"));
 15      MenuItem menuItemOpen = new MenuItem("Open",
 16        new ImageView("image/open.gif"));
 17      MenuItem menuItemPrint = new MenuItem("Print",
 18        new ImageView("image/print.gif"));
 19      MenuItem menuItemExit = new MenuItem("Exit");
 20      contextMenu.getItems().addAll(menuItemNew, menuItemOpen,
 21        menuItemPrint, menuItemExit);
 22     
 23      Pane pane = new Pane();
 24      Scene scene = new Scene(pane, 300, 250);  
 25      primaryStage.setTitle("ContextMenuDemo"); // Set the window title
 26      primaryStage.setScene(scene); // Place the scene in the window
 27      primaryStage.show(); // Display the window
 28      
 29      pane.setOnMousePressed(
 30        e -> contextMenu.show(pane, e.getScreenX(), e.getScreenY()));
 31      
 32      menuItemNew.setOnAction(e -> System.out.println("New"));
 33      menuItemOpen.setOnAction(e -> System.out.println("Open"));
 34      menuItemPrint.setOnAction(e -> System.out.println("Print"));
 35      menuItemExit.setOnAction(e -> System.exit(0));
 36    }
 37  
 38    /**
 39     * The main method is only needed for the IDE with limited
 40     * JavaFX support. Not needed for running from the command line.
 41     * line.
 42     */
 43    public static void main(String[] args) {
 44      launch(args);
 45    }
 46  }