首页 > 其他分享 >如何使用CheckMenuItem添加可选菜单项

如何使用CheckMenuItem添加可选菜单项

时间:2023-06-01 10:02:54浏览次数:47  
标签:CheckMenuItem javafx scene new window 添加 import 菜单项

如何使用CheckMenuItem添加可选菜单项

CheckMenuItem 也是一种菜单项目,类似 CheckBox ,拥有可选状态。

CheckMenuItem 可以添加到菜单中。

效果展示

image

示例代码

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.CheckMenuItem;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
import javafx.scene.control.SeparatorMenuItem;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class CheckMenuItemExample extends Application
{
    private Stage window;
    private MenuBar menuBar;

    private void exitProgram()
    {
        this.window.close();
    }

    private void buildMenu()
    {
        menuBar = new MenuBar();

        Menu fileMenu = new Menu("_File");
        menuBar.getMenus().add(fileMenu);

        MenuItem newMenuItem = new MenuItem("_New File");
        fileMenu.getItems().add(newMenuItem);
        MenuItem openMenuItem = new MenuItem("_Open File");
        fileMenu.getItems().add(openMenuItem);
        fileMenu.getItems().add(new SeparatorMenuItem());
        MenuItem exitMenuItem = new MenuItem("_Exit");
        fileMenu.getItems().add(exitMenuItem);
        exitMenuItem.setOnAction( e-> exitProgram() );

        Menu editMenu = new Menu("_Edit");
        menuBar.getMenus().add(editMenu);

        CheckMenuItem showLineNumber = new CheckMenuItem("Show _Line Number");
        showLineNumber.setOnAction(e -> {
            if (showLineNumber.isSelected())
            {
                System.out.println("Show line number");
            }
            else
            {
                System.out.println("Do not show line number");
            }
        });
        editMenu.getItems().add(showLineNumber);
    }

    @Override
    public void start(Stage window) throws Exception
    {
        this.window = window;

        VBox vBox = new VBox();

        this.buildMenu();
        vBox.getChildren().add(menuBar);

        Scene scene = new Scene(vBox, 400, 300);

        window.setScene(scene);
        window.setTitle(this.getClass().getSimpleName());
        window.show();
    }

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

代码说明

new CheckMenuItem("Show _Line Number") 创建了一个可选菜单项,_L 表示 ALT+L 组成选择快捷键。

点击菜单项后,可以触发由 showLineNumber.setOnAction 设置的回调函数,无论当前是选中,还是未选择,都会触发。

总结

为了使用 CheckMenuItem,可以按照以下步骤进行操作:

  1. 创建一个 CheckMenuItem 对象,并将其添加到相应的菜单中
  2. 使用 setOnAction 方法为 CheckMenuItem 设置事件处理程序,以便在用户点击菜单项时触发相应的操作

标签:CheckMenuItem,javafx,scene,new,window,添加,import,菜单项
From: https://www.cnblogs.com/javafx-howto/p/17448100.html

相关文章

  • 如何使用RadioMenuItem添加单选菜单项
    如何使用RadioMenuItem添加单选菜单项几个RadioMenuItem可以组成一个组合,组合中只能有一个菜单条目被选择。效果展示示例代码importjavafx.application.Application;importjavafx.scene.Scene;importjavafx.scene.control.Menu;importjavafx.scene.control.MenuBar;......
  • centos 添加新用户并授权
    添加用户[root@devops~]#adduserxuwei为这个用户初始化密码,linux会判断密码复杂度,不过可以强行忽略:[root@devops~]#passwdxuwei赋予sudo权限vim/etc/sudoers添加一行查看用户信息的常用命令用户列表文件:/etc/passwd用户组列表文件:/etc/group查看系统中有哪......
  • 使用Paste Image插件来方便的给Markdown添加截图的功能
    日常用vscode写markdown时可能会需要添加截图,这时一般的做法有两种,一种是把图片上传到图床,然后把图片链接写到![]()里另一种是,把图片保存到本地某个目录下,使用相对路径添加图片这两种方式操作起来都比较麻烦,因为都需要先把截图保存下来,所以有没有类似qq,wechat那种可以直接使用截......
  • 如何利用ObservableList为TableView添加Add和Del功能
    如何利用ObservableList为TableView添加Add和Del功能TableView的记录可以绑定到一个ObservableList。ObservableList是一种列表数据结构,继承自List。很多JavaFX控件都可以用ObservableList管理动态数据。利用ObservableList可以为TableView提供增加和删除数据的......
  • linux终端如何加上时间,添加时间戳到终端提示?
    方法:在.bashrc文件中加入exportPROMPT_COMMAND="echo-n\[\$(date+%H:%M:%S)\\]" 这样便可以在每次输入命令执行后自动在prompt中显示时间。  ......
  • 新建Git仓库并添加本地项目.txt
    1.在自己的GitHub上创建一个仓库。2.打开命令行工具,切换到需要上传的工程目录下。3.初始化当前目录作为Git仓库。gitinit4.添加目录下的文件到本地仓库。gitadd.添加当前目录下的所有文件如果需要unstage某个文件,使用gitresetHEAD<file>命令5.提交staged的文件git......
  • SQl Server添加索引
    USEDBGOIFNOTEXISTS(SELECTNameFROMSysColumnsWHEREid=Object_Id('[HIS_QUEUE]')ANDName='InsertDateTime')BEGINALTERTABLEHIS_QUEUEADDInsertDateTimedatetimeDEFAULT(CONVERT([date],CONVERT([varchar](100),getdate()......
  • bashrc添加环境变量当用户登录时生效,等号两边不要有空格
    bashrc是Linux系统中的一种shell脚本,当用户登录时,bashrc文件会被自动执行。它是一个用于加载环境变量和自定义脚本的地方,可以用来定制您的系统环境。在本文中,我们将详细介绍如何在bashrc文件中添加环境变量。一、基础知识在开始添加环境变量之前,您需要了解bashrc文件及其作用。......
  • java spring添加自义定拦截器后发生访问路径错误,状态码应该返回404时却返回200的bug
    javaspring添加自义定拦截器后发生访问路径错误,状态码应该返回404时却返回200的bug问题自义定拦截器LoginInterceptor继承HandlerInterceptor,自义定配置类继承WebMvcConfigurer。配置类中@OverridepublicvoidaddInterceptors(InterceptorRegistryregistry){......
  • SpringSecurity 添加验证码的两种方式
    一验证码生产<dependency><groupId>com.github.penggle</groupId><artifactId>kaptcha</artifactId><version>2.3.2</version></dependency>@ConfigurationpublicclassKaptchaConfig{@BeanPro......