开发者社区> 蒋固金> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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();
   }
}

运行结果:

这里写图片描述

这里写图片描述

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Java华氏转摄氏
package test; import java.util.Scanner; public class temperature { public static void main(String[] args) { double input_hs; double res; System.
1308 0
Java数组篇03——数组的使用及拓展
Java数组篇03——数组的使用及拓展
16 0
Java中菜单组件
MenuBar、Menu、MenuItem   先创建菜单栏,再创建菜单,每一个菜单中建立菜单项。   也可以菜单添加到菜单中,作为子菜单。   通过setMenuBar()方法,将菜单栏添加到Frame中。
979 0
来了!HaaS轻应用(JavaScript)2.0!It just works
HaaS轻应用(JavaScript)就是可运行在轻量级物联网设备上的JavaScript应用。 千呼万唤始出来,HaaS轻应用(JavaScript)2.0发布了!
212 0
Java NIO之套接字通道
1.简介 前面一篇文章讲了文件通道,本文继续来说说另一种类型的通道 -- 套接字通道。在展开说明之前,咱们先来聊聊套接字的由来。套接字即 socket,最早由伯克利大学的研究人员开发,所以经常被称为Berkeley sockets。
1054 0
Java版一致性哈希
昨天听一个在找工作的朋友讲,他面试的时候被问到一致性哈希,问我到底什么是一致性哈希,我第一感觉就是,面试官应该问的是memcache或redis之类的分布式应用,一致性哈希主要思想是闭环,场景一般是降低因节点变化而导致缓存命中率降低的问题。
1113 0
+关注
115
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载