JAVA图形界面(GUI)之菜单

简介:

菜单是我们很常见的一种组件,可以方便我们进行操作,JAVA中也提供了菜单的支持。这一篇博客将演示在JAVA中如何使用菜单。我们以记事本的部分菜单为例。

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

/**
 * 菜单示例
 * 
 * @author jianggujin
 *
 */
public class MenuDemo extends JFrame
{
   public MenuDemo()
   {
      super("MenuDemo");
      // 菜单栏
      JMenuBar menuBar = new JMenuBar();
      JMenu file = new JMenu("文件(F)");
      // 设置助记符为F,按下ALT + F 可以触发该菜单
      file.setMnemonic('F');

      JMenuItem open = new JMenuItem("打开");
      JMenuItem quit = new JMenuItem("退出");

      file.add(open);
      // 设置菜单分隔符
      file.addSeparator();
      file.add(quit);

      menuBar.add(file);

      // 设置菜单栏,使用这种方式设置菜单栏可以不占用布局空间
      setJMenuBar(menuBar);

      // 以上为普通菜单,菜单还有一种为弹出式菜单,通过鼠标右击弹出
      final JPopupMenu menu = new JPopupMenu();
      JMenuItem pop = new JMenuItem("编辑");
      menu.add(pop);

      JTextArea textArea = new JTextArea();
      // 添加鼠标事件监听器,使用适配器
      textArea.addMouseListener(new MouseAdapter() {
         public void mouseReleased(MouseEvent e)
         {
            if (e.isPopupTrigger())
            {
               // 显示弹出式菜单
               menu.show(e.getComponent(), e.getX(), e.getY());
            }
         }
      });
      add(new JScrollPane(textArea));

      setSize(400, 300);
      setLocationRelativeTo(null);
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      setVisible(true);
   }

   public static void main(String[] args)
   {
      new MenuDemo();
   }
}

运行结果:

这里写图片描述

这里写图片描述

目录
相关文章
|
24天前
|
存储 Java 关系型数据库
个人成绩信息管理系统【GUI/Swing+MySQL】(Java课设)
个人成绩信息管理系统【GUI/Swing+MySQL】(Java课设)
20 0
|
24天前
|
存储 Java 关系型数据库
社区医院管理服务系统【GUI/Swing+MySQL】(Java课设)
社区医院管理服务系统【GUI/Swing+MySQL】(Java课设)
25 1
|
24天前
|
存储 Java 关系型数据库
实验室设备管理系统【GUI/Swing+MySQL】(Java课设)
实验室设备管理系统【GUI/Swing+MySQL】(Java课设)
17 0
|
24天前
|
存储 Java 关系型数据库
冬奥会传统文化管理系统【GUI/Swing+MySQL】(Java课设)
冬奥会传统文化管理系统【GUI/Swing+MySQL】(Java课设)
8 0
|
24天前
|
存储 Java 关系型数据库
学生宿舍管理系统【GUI/Swing+MySQL】(Java课设)
学生宿舍管理系统【GUI/Swing+MySQL】(Java课设)
19 0
|
24天前
|
存储 Java 关系型数据库
学生管理系统【GUI/Swing+MySQL】(Java课设)
学生管理系统【GUI/Swing+MySQL】(Java课设)
18 0
|
24天前
|
存储 Java 关系型数据库
洗浴中心管理系统【GUI/Swing+MySQL】(Java课设)
洗浴中心管理系统【GUI/Swing+MySQL】(Java课设)
13 0
|
3月前
|
前端开发 Java 数据安全/隐私保护
Java学习—GUI编程学习笔记
Java学习—GUI编程学习笔记
|
24天前
|
存储 Java 关系型数据库
创新创业项目申报管理系统【GUI/Swing+MySQL】(Java课设)
创新创业项目申报管理系统【GUI/Swing+MySQL】(Java课设)
12 0
|
24天前
|
存储 Java 关系型数据库
毕业课题管理系统【GUI/Swing+MySQL】(Java课设)
毕业课题管理系统【GUI/Swing+MySQL】(Java课设)
18 0