Java学习day079 Swing用户界面组件(五:菜单一)(菜单创建、菜单项中的图标、复选框和单选钮菜单项、弹出菜单、快捷键和加速器、启用和禁用菜单项)

本文详细介绍了Java Swing中的菜单使用,包括菜单创建、菜单项的图标、复选框和单选钮菜单项、弹出菜单、快捷键与加速器的设置,以及如何启用和禁用菜单项。通过实例展示了如何创建具有各种特性的菜单,帮助读者理解Java GUI编程中的菜单操作。
摘要由CSDN通过智能技术生成

使用的教材是java核心技术卷1,我将跟着这本书的章节同时配合视频资源来进行学习基础java知识。

day079   Swing用户界面组件(五:菜单一)(菜单创建、菜单项中的图标、复选框和单选钮菜单项、弹出菜单、快捷键和加速器、启用和禁用菜单项)

Swing还提供了一些其他种类的用户界面元素,下拉式菜单就是GUI应用程序中很常见的一种。位于窗口顶部的菜单栏(menu bar)包括了下拉菜单的名字。点击一个名字就可以打开包含菜单项(menu items)和子菜单(submenus)的菜单。当用户点击菜单项时,所有的菜单都会被关闭并且将一条消息发送给程序。


1.菜单创建

创建菜单是一件非常容易的事情。首先要创建一个菜单栏:

JMenuBar menuBar = new JMenuBar();

菜单栏是一个可以添加到任何位置的组件。通常放置在框架的顶部。可以调用 setJMenuBar方法将菜单栏添加到框架上:

frame.setJMenuBar(menuBar);

需要为每个菜单建立一个菜单对象:

JMenue ditMenu=new JMenu("Edit"); 

然后将顶层菜单添加到菜单栏中:

menuBar.add(editMenu);

向菜单对象中添加菜单项、分隔符和子菜单:

JMenuItem pasteltem=new JMenuItem("Paste");
editMenu.add(pasteltem);
editMenu.addSeparator();
JMenu optionsMenu=...;//a submenu
editMenu.add(optionsMenu);

当用户选择菜单时,将触发一个动作事件。这里需要为每个菜单项安装一个动作监听器。

ActionListener listener =...;
pasteItem.addActionListener(listener);

可以使用JMenu.add(Striiigs)方法将菜单项插入到菜单的尾部,例如:

editMenu.add("Paste");

Add方法返回创建的子菜单项。可以采用下列方式获取它,并添加监听器:

JMenuItem pasteltem=editMenu.add("Paste");
pasteltem.addActionListener(listener);

在通常情况下,菜单项触发的命令也可以通过其他用户界面元素(如工具栏上的按钮)激活。之前已经看到了如何通过Action对象来指定命令。通常,采用扩展抽象类AbstractAction来定义一个实现Action接口的类。这里需要在AbstractAction对象的构造器中指定菜单项标签并且覆盖actionPerformed方法来获得菜单动作处理器。例如:

Action exitAction = new AbstractAction("Exit")//menu item text goes here 
{
    public void actionPerformed(ActionEvent event)
    {
        //action code goes here 
        System.exit(0);
    }
};

然后将动作添加到菜单中:

JMenuItem exitltem = fileMenu.add(exitAction);

这个命令利用动作名将一个菜单项添加到菜单中。这个动作对象将作为它的监听器。上面这条语句是下面两条语句的快捷形式:

JMenuItem exitltem = new JMenuItem(exitAction);
fileMenu.add(exitltem);

                                      


2.菜单项中的图标

菜单项与按钮很相似。实际上,JMenuItem类扩展了AbstractButton类。与按钮一样,菜单可以包含文本标签、图标,也可以两者都包含。既可以利用JMenuItem(Striiig,Icon)或者JMenuItem(Icon)构造

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值