>  기사  >  Java  >  Java GUI 프로그래밍 메뉴 구성 요소를 사용하는 방법

Java GUI 프로그래밍 메뉴 구성 요소를 사용하는 방법

王林
王林앞으로
2023-05-28 08:16:121346검색

Java GUI 프로그래밍 메뉴 구성 요소를 사용하는 방법

공통적인 메뉴 관련 컴포넌트는 다음 표와 같습니다.

메뉴 컴포넌트 이름 Function
MenuBar 메뉴바, 메뉴 컨테이너.
Menu Menu 구성요소, 메뉴 항목의 컨테이너입니다. Menultem의 서브클래스이기도 해서 메뉴 아이템
PopupMenu 컨텍스트 메뉴 컴포넌트(우클릭 메뉴 컴포넌트)
Menultem 메뉴 아이템 컴포넌트로 활용 가능합니다.
CheckboxMenuItem Checkbox 메뉴 항목 컴포넌트

다음 그림은 일반적인 메뉴 관련 컴포넌트 통합 시스템 다이어그램입니다.

Java GUI 프로그래밍 메뉴 구성 요소를 사용하는 방법

메뉴 관련 컴포넌트 사용법:

1. 이러한 구성 요소는 MenuItem 및 해당 하위 클래스 개체일 수 있습니다.

2. 메뉴 구성 요소 Menu 또는 PopupMenu(하위 메뉴를 팝업하려면 마우스 오른쪽 버튼을 클릭)를 준비하고 첫 번째 단계에서 준비한 메뉴 항목 구성 요소를 추가합니다. 메뉴바 컴포넌트 MenuBar, 두 번째 단계에서 준비한 메뉴 컴포넌트 메뉴 추가

4. 세 번째 단계에서 준비한 메뉴바 컴포넌트를 윈도우 객체에 추가하여 표시합니다.

팁:

1. 특정 메뉴의 메뉴 항목 사이에 구분선을 추가하려면 메뉴의 추가(새 MenuItem(-))만 호출하면 됩니다.

2. 바로가기 키 기능을 메뉴 항목과 연결하려면 메뉴 항목 개체를 생성할 때만 설정하면 됩니다. 예를 들어 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를 통해 아래 효과 달성:

1. PopubMenu 메뉴 구성요소 생성

2. PopupMenu에 추가. 대상 구성 요소에 PopupMenu 추가 ;Java GUI 프로그래밍 메뉴 구성 요소를 사용하는 방법

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 프로그래밍 메뉴 구성 요소를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제