发布时间:2023-10-25 13:30
目录
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基础】【后端技术】、【数据结构】【Linux操作系统】感兴趣的小可爱,也欢迎关注 【LNORA】,对【算法设计与分析】感兴趣的可以免费订阅【算法设计与分析】的专栏,如果我的文章有帮助到你,麻烦来个一键三连奥,这将是对我莫大的鼓励,我将为大家带来更加优质的文章!我们可以一起进步,每天进步一点点,我将会给你带来巨大的【收获与惊喜】!