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中几种常见菜单的理解,以便于我们之后在不同开发中根据不同的情况设置不同的菜单,提高用户的体验感。
上一篇:SpringBoot入口类和@SpringBootApplication讲解
栏 目:JAVA代码
下一篇:基于spring @Cacheable 注解的spel表达式解析执行逻辑
本文标题:Java详细解析下拉菜单和弹出菜单的使用
本文地址:http://www.codeinn.net/misctech/215426.html