码迷,mamicode.com
首页 > 编程语言 > 详细

【Java】详解菜单组件

时间:2018-03-05 00:46:46      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:tac   编程   使用   文字   组件   override   add   style   展开   

在这篇文章中,笔者会介绍Java图形界面编程中菜单组件的用法。关于菜单组件,因为java存在AWT编程和Swing编程,所以菜单组件也存在AWT菜单和Swing菜单。因为Swing组件使用的比较多,所以笔者的案例中都是运用Swing菜单中的类。

在介绍Swing菜单之前,先看看AWT菜单组件的类关系图:

技术分享图片

Swing菜单组件与AWT菜单组件中的类结构类似。

Swing菜单组件的用法在API中已经给出了,所以笔者在这里不必要列出。这里笔者要说一说,Swing菜单组件中的快捷键,下面笔者会详细介绍Swing中菜单的快捷键。

public void setMnemonic(int mnemonic)

这个方法可以设置键盘助记字符,不过该方法的使用是依赖Swing组件的菜单分层结构的,也就是说设置了该助记字符的菜单项目必须已经展开了,才能使用(通过和Alt+键结合使用),

例如:

        JFrame jf=new JFrame("窗口测试");
        
        JMenuBar bar=new JMenuBar();
        JMenu file=new JMenu("菜单   ");
        JMenuItem createfile=new JMenuItem("创建文件   VK_N");
        
        createfile.setMnemonic(KeyEvent.VK_N);
        createfile.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent arg0) {
                System.out.println("创建文件被点击");
            }
        });
        
        file.add(createfile);
        bar.add(file);
        
        jf.setJMenuBar(bar);
        jf.pack();
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.setVisible(true);

效果图为:

技术分享图片

如果在上面这种图片的效果下,摁下Ctr+N的话,控制台是不会打印东西的,只有把鼠标移到菜单上,看见“创建菜单”项后,使用Ctr+N控制台才会打印消息。

值得注意的是 setMnemonic 并非是JMenuItem的方法,而是来着他的父类AbstractButton的,所以该方法通常是不应用于菜单项的。

JMenuItem自身有一个方法 public void setAccelerator(KeyStroke keyStroke) 该方法的功能要比上面的那个方法要强大,该方法可以设置菜单项的快捷键,它是不依赖菜单的分层结构的。

例如:

        JFrame jf=new JFrame("窗口测试");
        
        JMenuBar bar=new JMenuBar();
        JMenu file=new JMenu("菜单   ");
        JMenuItem createfile=new JMenuItem("创建文件");
        
        createfile.setAccelerator(KeyStroke.getKeyStroke(‘N‘, InputEvent.CTRL_DOWN_MASK));
        createfile.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent arg0) {
                System.out.println("创建文件被点击");
            }
        });
        
        file.add(createfile);
        bar.add(file);
        
        jf.setJMenuBar(bar);
        jf.pack();
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.setVisible(true);

效果图:

技术分享图片

摁下Ctr+N键的话,控制台就会打印消息了。

同时我们也可以看到,快捷键也被附加在文字的后面了。

【Java】详解菜单组件

标签:tac   编程   使用   文字   组件   override   add   style   展开   

原文地址:https://www.cnblogs.com/HDK2016/p/8506882.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!