文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java GUI编程菜单组件怎么用

2023-06-29 21:29

关注

这篇文章主要介绍了Java GUI编程菜单组件怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java GUI编程菜单组件怎么用文章都会有所收获,下面我们一起来看看吧。

Java GUI编程菜单组件怎么用

下表中给出常见的菜单相关组件:

菜单组件名称功能
MenuBar菜单条 , 菜单的容器 。
Menu菜单组件 , 菜单项的容器 。 它也是Menultem的子类 ,所以可作为菜单项使用
PopupMenu上下文菜单组件(右键菜单组件)
Menultem菜单项组件 。
CheckboxMenuItem复选框菜单项组件

下图是常见菜单相关组件集成体系图:

Java GUI编程菜单组件怎么用

菜单相关组件使用:

准备菜单项组件,这些组件可以是MenuItem及其子类对象

准备菜单组件Menu或者PopupMenu(右击弹出子菜单),把第一步中准备好的菜单项组件添加进来;

准备菜单条组件MenuBar,把第二步中准备好的菜单组件Menu添加进来;

把第三步中准备好的菜单条组件添加到窗口对象中显示。

小技巧:

如果要在某个菜单的菜单项之间添加分割线,那么只需要调用Menu的add(new MenuItem(-))即可。

如果要给某个菜单项关联快捷键功能,那么只需要在创建菜单项对象时设置即可,例如给菜单项关联 ctrl+shif+/ 快捷键,只需要:new MenuItem("菜单项名字",new MenuShortcut(KeyEvent.VK_Q,true);

案例1:

使用awt中常用菜单组件,完成下图效果

Java GUI编程菜单组件怎么用

演示代码1:

import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class SimpleMenu {    //创建窗口    private Frame frame = new Frame("这里测试菜单相关组件");    //创建菜单条组件    private MenuBar menuBar = new MenuBar();    //创建文件菜单组件    private Menu fileMenu = new Menu("文件");    //创建编辑菜单组件    private Menu editMenu = new Menu("编辑");    //创建新建菜单项    private MenuItem newItem = new MenuItem("新建");    //创建保存菜单项    private MenuItem saveItem = new MenuItem("保存");    //创建退出菜单项    private MenuItem exitItem = new MenuItem("退出");    //创建自动换行选择框菜单项    private CheckboxMenuItem autoWrap = new CheckboxMenuItem("自动换行");    //创建复制菜单项    private MenuItem copyItem = new MenuItem("复制");    //创建粘贴菜单项    private MenuItem pasteItem = new MenuItem("粘贴");    //创建格式菜单    private Menu formatMenu = new Menu("格式");    //创建注释菜单项    private MenuItem commentItem = new MenuItem("注释");    //创建取消注释菜单项    private MenuItem cancelItem = new MenuItem("取消注释");    //创建一个文本域    private TextArea ta = new TextArea(6, 40);    public void init(){        //定义菜单事件监听器        ActionListener listener = new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                String command = e.getActionCommand();                ta.append("单击“"+command+"”菜单\n");                if (command.equals("退出")){                    System.exit(0);                }            }        };        //为注释菜单项和退出菜单项注册监听器        commentItem.addActionListener(listener);        exitItem.addActionListener(listener);        //为文件菜单fileMenu添加菜单项        fileMenu.add(newItem);        fileMenu.add(saveItem);        fileMenu.add(exitItem);        //为编辑菜单editMenu添加菜单项        editMenu.add(autoWrap);        editMenu.add(copyItem);        editMenu.add(pasteItem);        //为格式化菜单formatMenu添加菜单项        formatMenu.add(commentItem);        formatMenu.add(cancelItem);        //将格式化菜单添加到编辑菜单中,作为二级菜单        editMenu.add(new MenuItem("-"));        editMenu.add(formatMenu);        //将文件菜单和编辑菜单添加到菜单条中        menuBar.add(fileMenu);        menuBar.add(editMenu);        //把菜单条设置到frame窗口上        frame.setMenuBar(menuBar);        //把文本域添加到frame中        frame.add(ta);        //设置frame最佳大小并可见        frame.pack();        frame.setVisible(true);    }    public static void main(String[] args) {        new SimpleMenu().init();    }}

案例2:

通过PopupMenu实现下图效果:

Java GUI编程菜单组件怎么用

实现思路:

创建PopubMenu菜单组件;

创建多个MenuItem菜单项,并添加到PopupMenu中;

将PopupMenu添加到目标组件中;

为需要右击出现PopubMenu菜单的组件,注册鼠标监听事件,当监听到用户释放右键时,弹出菜单。

演示代码2:

import java.awt.*;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;public class PopupMenuTest {    private Frame frame = new Frame("这里测试PopupMenu");    // 创建PopubMenu菜单    private PopupMenu popupMenu = new PopupMenu();    // 创建菜单条    private MenuItem commentItem = new MenuItem("注释");    private MenuItem cancelItem = new MenuItem("取消注释");    private MenuItem copyItem = new MenuItem("复制");    private MenuItem pasteItem = new MenuItem("保存");    // 创建一个文本域    private TextArea ta = new TextArea("我爱中华!!!", 6, 40);    // 创建一个Panel    private Panel panel = new Panel();    public void init() {        // 把菜单项添加到PopupMenu中        popupMenu.add(commentItem);        popupMenu.add(cancelItem);        popupMenu.add(copyItem);        popupMenu.add(pasteItem);        // 设置panel大小        panel.setPreferredSize(new Dimension(300, 100));        // 把PopupMenu添加到panel中        panel.add(popupMenu);        // 为panel注册鼠标事件        panel.addMouseListener(new MouseAdapter() {            @Override            public void mouseReleased(MouseEvent e) {                boolean flag = e.isPopupTrigger();                // 判断当前鼠标操作是不是触发PopupMenu的操作                if (flag) {                    // 让PopupMenu显示在panel上,并且跟随鼠标事件发生的地方显示                    popupMenu.show(panel, e.getX(), e.getY());                }            }        });        // 把ta添加到frame中间区域中        frame.add(ta);        // 把panel添加到frame底部        frame.add(panel, BorderLayout.SOUTH);        // 设置frame最佳大小,并可视;        frame.pack();        frame.setVisible(true);    }    public static void main(String[] args) {        new PopupMenuTest().init();    }}

关于“Java GUI编程菜单组件怎么用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Java GUI编程菜单组件怎么用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯