JavaGui界面菜单组件

菜单组件

​ 前面讲解了如果构建GUI界面,其实就是把一些GUI的组件,按照一定的布局放入到容器中展示就可以了。在实际开发中,除了主界面,还有一类比较重要的内容就是菜单相关组件,可以通过菜单相关组件很方便的使用特定的功能,在AWT中,菜单相关组件的使用和之前学习的组件是一模一样的,只需要把菜单条、菜单、菜单项组合到一起,按照一定的布局,放入到容器中即可。

JavaGui界面菜单组件_第1张图片

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

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

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

JavaGui界面菜单组件_第2张图片

菜单相关组件使用:

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

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

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

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

小技巧:

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

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

案例1:

​ 使用awt中常用菜单组件,完成下图效果
JavaGui界面菜单组件_第3张图片

演示代码1:

package domee.GUI;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class SimpleMenu {
    public static void main(String[] args) {
        Frame frame =new Frame("测试");
        TextArea textArea = new TextArea();
        MenuBar menuBar = new MenuBar();
        Menu menu1 = new Menu("文件");
        Menu menu2 = new Menu("编辑");
        Menu menu3 = new Menu("格式");
        MenuItem menuItem1 = new MenuItem("自动换行");
        MenuItem menuItem2 = new MenuItem("复制",new MenuShortcut(KeyEvent.VK_C,false));
        MenuItem menuItem3 = new MenuItem("粘贴",new MenuShortcut(KeyEvent.VK_V,false));


        MenuItem menuItem5 = new MenuItem("注释 ",new MenuShortcut(KeyEvent.VK_Q,true));
        MenuItem menuItem6 = new MenuItem("取消注释");

        menu3.add(menuItem5);
        menu3.add(menuItem6);

        menu2.add(menuItem2);
        menu2.add(menuItem3);
        menu2.add(menuItem1);
        menu2.add(menu3);

        menuBar.add(menu1);
        menuBar.add(menu2);


        frame.setMenuBar(menuBar);
        frame.add(textArea);

        menuItem5.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                textArea.append("您点击了:"+menuItem5.getActionCommand()+"\n");
            }
        });


        frame.pack();
        frame.setVisible(true);
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
                System.exit(0);
            }
        });
    }
}

JavaGui界面菜单组件_第4张图片

你可能感兴趣的:(Java图形化界面编程,java,gui,swing)