Java详细解析下拉菜单和弹出菜单的使用

 更新时间:2022年04月29日 09:40:35   作者:LNORA  
这篇文章主要介绍了怎么用Java来创建和使用下拉菜单和弹出菜单,下拉菜单和弹出菜单是我们经常要用的工具,但是你有想过自己怎么去实现它吗,感兴趣的朋友跟随文章往下看看吧

Swing菜单组件

下拉式菜单介绍

创建一个下拉式菜单,需要三个组件,JmenuBar(菜单栏),Jmenu(菜单),Jmenultem(菜单项)。

下拉式菜单的三个组件

JMenuBar(菜单栏)

表示一个水平的菜单栏,用来管理菜单,不参与同用户的交互式操作,菜单栏可以放在容器的任何位置,但通常情况下会使用顶级窗口的setJMenuBar方法将它放置在顶级窗口的顶部,JMenuBar有一个午无参的构造函数,创建菜单栏时,只需要使用new关键字创建JMenuBar对象,创建完成之后,可以调用add(JMenu c)方法添加JMenu菜单。

JMenu(菜单)

用来整合管理菜单项,菜单可以是单一层次的结构,也可以是多层次的结构,可以使用JMenu(String text)创建JMenu菜单,其中的参数text表示菜单上的文本。

菜单的常用方法

方法声明功能描述
void JMenuItem add(JMenuItem menuItem)将菜单项添加到菜单末尾,返回此菜单项
void addSeparator()将分隔符添加到菜单末尾
JMenuItem getItem(int pos)返回指定索引处的菜单项,第一个菜单项的索引为0
int getItemCount()返回菜单上的项数,菜单项和分隔符都计算在内
void JMenuItem insert(JmuenuItem menuItem,int pos)在指定索引处插入菜单项
void insertsertSeparator(int pos)在指定索引处插入分隔符
void remove(int pos)从菜单中移除指定索引处的菜单项
void remove(JMenuItem menuItem)从菜单中移除指定的菜单项
void removeAll()从菜单中移除所有的菜单项

JMenuItem(菜单项)

在创建菜单项时,通常会采用构造方法JMenuItem为菜单项指定文本内容。因为JMenuItem是继承AbstractButton类的,所以可以吧它看作一个按钮,可以用无参的构造方法创建一个菜单项,可以调用从AbstractButton类中继承的setText(String text)方法和setItem()方法为其设置文本和图标。

下拉式菜单的创建与使用

 package Swing;
 import javax.swing.*;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 public class CaiDan extends JFrame {
     public  CaiDan(){
         //创建菜单栏
         JMenuBar menuBar=new JMenuBar();
         //将菜单栏添加到JFrame窗口中
         this.setJMenuBar(menuBar);
         //创建菜单
         JMenu menu=new JMenu("操作");
         //将菜单添加到菜单栏上
         menuBar.add(menu);
         //创建两个菜单项
         JMenuItem item1=new JMenuItem("弹出窗口");
         JMenuItem item2=new JMenuItem("关闭");
         //为菜单项添加事件监听器
         item1.addActionListener(new ActionListener() {
             @Override
             public void actionPerformed(ActionEvent e) {
                 //创建一个JDialog窗口
                 JDialog dialog=new JDialog(CaiDan.this,true);
                 dialog.setTitle("弹出窗口");
                 dialog.setSize(200,200);
                 dialog.setLocation(50,50);
                 dialog.setVisible(true);
             }
         });
         item2.addActionListener(new ActionListener() {
             @Override
             public void actionPerformed(ActionEvent e) {
                 System.exit(0);
             }
         });
         //将菜单项添加到菜单中
         menu.add(item1);
         menu.addSeparator();
         menu.add(item2);
         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         this.setSize(300,300);
         this.setVisible(true);
     }
     public static void main(String[] args) {
         new CaiDan();
     }
 }

创建和添加下拉式菜单的一般步骤

  • 创建一个JMenuBar菜单栏对象,将其放置在JFrame窗口的顶部
  • 创建JMenu菜单对象,将其添加到JMenuBar菜单栏中
  • 创建JMenuItem菜单项,将其添加到JMenuBar菜单中。

弹出式菜单介绍

在系统中单击右键出现的菜单就是弹出式菜单,在Java的Swing组件中,弹出式菜单用JPopupMenu表示。通过add()方法添加JMenuItem菜单项,默认是不可见的。

弹出式菜单的创建与使用

 package Swing;
 import javax.swing.*;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
 public class TanChu extends JFrame {
     private JPopupMenu popupMenu;
     public TanChu(){
         //创建一个JPopupMenu菜单
         popupMenu=new JPopupMenu();
         //创建三个JMenuItem菜单项
         JMenuItem refreshItem=new JMenuItem("refresh");
         JMenuItem createItem=new JMenuItem("create");
         JMenuItem exitItem=new JMenuItem("exit");
         //为exitItem菜单项添加事件监听器
         exitItem.addActionListener(new ActionListener() {
             @Override
             public void actionPerformed(ActionEvent e) {
                 System.exit(0);
             }
         });
         //向JPopupMenu菜单添加菜单项
         popupMenu.add(refreshItem);
         popupMenu.add(createItem);
         popupMenu.addSeparator();
         popupMenu.add(exitItem);
         //向JFrame窗口添加clicked鼠标事件监听器
         this.addMouseListener(new MouseAdapter() {
             @Override
             public void mouseClicked(MouseEvent e) {
                 //通过值匹配,当点击右键的时候,显示JPopupMenu菜单
                if(e.getButton()==e.BUTTON3){
                    popupMenu.show(e.getComponent(),e.getX(),e.getY());
                }
             }
         });
         this.setSize(300,300);
         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         this.setVisible(true);
     }
     public static void main(String[] args) {
         new TanChu();
     }
 }

小结

以上就是我对于Java中几种常见菜单的理解,以便于我们之后在不同开发中根据不同的情况设置不同的菜单,提高用户的体验感。

到此这篇关于Java详细解析下拉菜单和弹出菜单的使用的文章就介绍到这了,更多相关Java菜单内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • IDEA的Swing可视化插件JFormDesigner详解

    IDEA的Swing可视化插件JFormDesigner详解

    JFormDesigner是一个专业的软件应用程序,专门用于帮助您开发Java Swing用户界面,而无需具备编程技能。它可作为独立实用程序使用,也可以将其用作各种IDE的插件,本文给大家介绍idea Swing可视化插件,感兴趣的朋友一起看看吧
    2022-06-06
  • Linux下启动jar包的几种常见方式

    Linux下启动jar包的几种常见方式

    最近在linux上发布了一个SpringBoot项目,研究了一下jar包在Linux上的集中启动方式,这篇文章主要给大家介绍了Linux下启动jar包的几种常见方式,需要的朋友可以参考下
    2023-07-07
  • SpringCloud降级规则使用介绍

    SpringCloud降级规则使用介绍

    这篇文章主要介绍了SpringCloud降级规则,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 线程池之newFixedThreadPool定长线程池的实例

    线程池之newFixedThreadPool定长线程池的实例

    这篇文章主要介绍了线程池之newFixedThreadPool定长线程池的实例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • 一个合格JAVA软件工程师应该具备什么

    一个合格JAVA软件工程师应该具备什么

    一个合格JAVA软件工程师应该具备哪些专业技能,面试技巧是什么?本文为大家分享了2016版最新Java软件工程师就业思维图,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • spring boot 导出数据到excel的操作步骤(demo)

    spring boot 导出数据到excel的操作步骤(demo)

    这篇文章主要介绍了spring boot 导出数据到excel的实现步骤,文中通过打开一个平时练习使用的springboot的demo给大家详细介绍,需要的朋友可以参考下
    2022-03-03
  • Java扩展Nginx之共享内存

    Java扩展Nginx之共享内存

    这篇文章主要介绍了Java扩展Nginx之共享内存的相关资料,需要的朋友可以参考下
    2023-07-07
  • JDK12的新特性之teeing collectors

    JDK12的新特性之teeing collectors

    这篇文章主要介绍了JDK12的新特性之teeing collectors的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • Java的String类中的startsWith方法和endsWith方法示例详解

    Java的String类中的startsWith方法和endsWith方法示例详解

    大家应该都知道startsWith()方法用于检测字符串是否以指定的前缀开始,endsWith()方法用于测试字符串是否以指定的后缀结束,本文就Java的String类中的startsWith方法和endsWith方法给大家详细讲解,感兴趣的朋友一起看看吧
    2023-11-11
  • Java swing框架实现的贪吃蛇游戏完整示例

    Java swing框架实现的贪吃蛇游戏完整示例

    这篇文章主要介绍了Java swing框架实现的贪吃蛇游戏,结合完整实例形式分析了java使用swing框架结合awt图形绘制实现贪吃蛇游戏的具体步骤与相关实现技巧,需要的朋友可以参考下
    2017-12-12

最新评论