JavaFX ContexMenu

105 篇文章 5 订阅

The JavaFX ContextMenu component provides a standard right click menu for JavaFX controls. The JavaFX ContextMenu is represented by the class javafx.scene.control.ContextMenu. You create a ContextMenu instance and attach it to the JavaFX control you want the ContextMenu to be active for. Here is a screenshot of a JavaFX TextArea with a ContextMenu attached and shown:

Full ContextMenu Example

Here is a full JavaFX ContextMenu example to give you a quick overview of how using the ContextMenu looks

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class ContextMenuExample extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    public void start(Stage primaryStage) {

        ContextMenu contextMenu = new ContextMenu();
        MenuItem menuItem1 = new MenuItem("Choice 1");
        MenuItem menuItem2 = new MenuItem("Choice 2");
        MenuItem menuItem3 = new MenuItem("Choice 3");

        menuItem3.setOnAction((event) -> {
            System.out.println("Choice 3 clicked!");
        });

        contextMenu.getItems().addAll(menuItem1,menuItem2,menuItem3);

        TextArea textArea = new TextArea();

        textArea.setContextMenu(contextMenu);

        VBox vBox = new VBox(textArea);
        Scene scene = new Scene(vBox);

        primaryStage.setScene(scene);
        primaryStage.setTitle("JavaFX App");

        primaryStage.show();
    }
}

Create a ContextMenu

To use a JavaFX ContextMenu you must first create a ContextMenu instance. Here is an example of creating a JavaFX ContextMenu:

ContextMenu contextMenu = new ContextMenu();

Add Menu Items to the ContextMenu

The ContextMenu needs one or more MenuItem instances which are displayed in the menu. To detect which menu item was clicked, you add listeners to the MenuItem instances. Here is an example of adding MenuItem instances to a ContextMenu:

ContextMenu contextMenu = new ContextMenu();

MenuItem menuItem1 = new MenuItem("Choice 1");
MenuItem menuItem2 = new MenuItem("Choice 2");
MenuItem menuItem3 = new MenuItem("Choice 3");

menuItem3.setOnAction((event) -> {
    System.out.println("Choice 3 clicked!");
});

contextMenu.getItems().addAll(menuItem1,menuItem2,menuItem3);

Notice how there is an onAction listener set on the third MenuItem, using setOnAction(), passing Java Lambda Expression as listener. If this MenuItem is clicked, the action listener is executed.

Add ContextMenu to JavaFX Control

A JavaFX ContextMenu needs to be attached to a JavaFX control to be active. You add a ContextMenu to a control via the setContextMenu() of a JavaFX control. Here is an example of adding a JavaFX ContextMenu to a JavaFX control:

TextArea textArea = new TextArea();
textArea.setContextMenu(contextMenu);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值