Java-GUI-Example16

菜单组件

下拉式菜单

在Swing中,创建下拉式菜单需要使用三个组件:JMenuBar(菜单栏)、JMenu(菜单)和JMenuItem(菜单项)。

JMenuBar表示一个水平的菜单栏,它来管理一组菜单,不参与同用户的交互式操作。

JMenu表示一个 菜单,它用来整合管理菜单项。

JMenu常用方法

方法声明

功能描述

JMenuItem add(JMenuItem menuItem)

将菜单项添加到菜单末尾,返回此菜单项

void addSeparator()

将分隔符添加到菜单的末尾

JMenuItem getItem(int pos)

返回指定索引处的菜单项,第一个菜单项的索引为0

int getItemCount()

返回菜单上的项数,菜单项和分隔符都计算在内

JMenuItem insert(JmenuItem menuItem,int pos)

在指定索引处插入菜单项

void insertSeparator(int pos)

在指定索引处插入分隔符

void remove(int pos)

从菜单中移除指定索引处的菜单项

void remove(JMenuItem menuItem)

从菜单中移除指定的菜单项

void removeAll()

从菜单中移除所有的菜单项

JMenuItem

JMenuItem表示一个菜单项,它式菜单系统中最基本的组件。在创建JMenItem菜单项时,通常会使用JMenumItem(String text)这个构造方法为菜单项指定文本内容。

Example16.java

1 packageGUI;2 import javax.swing.*;3 public classExample16 {4 private static voidcreateAndShowGUI() {5 //1.创建一个JFrame容器窗口

6 JFrame f =new JFrame("JFrame窗口");7 f.setSize(350,300);8 f.setLocation(300,200);9 f.setVisible(true);10 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);11 //2.创建菜单栏组件JMenuBar

12 JMenuBar menuBar =newJMenuBar();13 //2.1创建两个JMenu菜单组件,并加入JMenuBar中

14 JMenu menu1 =new JMenu("文件(F)");15 JMenu menu2 =new JMenu("帮助(H)");16 menuBar.add(menu1);17 menuBar.add(menu2);18 //2.2创建两个JMenuItem菜单项组件,并加入JMenu中

19 JMenuItem item1 =new JMenuItem("新建(N)");20 JMenuItem item2 =new JMenuItem("退出(X)");21 menu1.add(item1);22 menu1.addSeparator(); //设置分隔符

23 menu1.add(item2);24 //2.3分别创建两个JMenuItem菜单项监听器

25 item1.addActionListener(e->{26 //创建一个JDialog弹窗

27 JDialog dialog =new JDialog(f,"无标题",true);28 dialog.setSize(200,100);29 dialog.setLocation(300,200);30 dialog.setVisible(true);31 dialog.setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE);32 });33 item2.addActionListener(e->System.exit(0));34 //3.向JFrame窗口容器中加入JMenuBar菜单插件

35 f.setJMenuBar(menuBar);36 }37 public static voidmain(String[] args) {38 //使用SwingUtilities工具类调用createAndShowGUI()方法并显示GUI程序

39 SwingUtilities.invokeLater(Example16::createAndShowGUI);40 }41 }

效果:

java下拉菜单option java下拉菜单栏_菜单项

弹出式菜单

在Swing组件中,弹出式菜单可以用JPopupMenu来实现。

JPopupMenu弹出式菜单和下拉式菜单一样都通过调用add()方法添加JMenuItem菜单项,但它默认式不可见的,如果想要显示出来,则必须调用它的show(Component invoker,int x,int y)方法,该方法中的参数invoker表示JPopupMenu菜单的左上角坐标。

Example17.java

1 packageGUI;2 import java.awt.event.*;3 import javax.swing.*;4 public classExample17 {5 private static voidcreateAndShowGUI() {6 //1.创建一个JFrame容器窗口

7 JFrame f =new JFrame("JFrame窗口");8 f.setSize(300,200);9 f.setLocation(300,200);10 f.setVisible(true);11 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);12 //2.创建JPopupMenu弹出式菜单

13 JPopupMenu popupMenu =newJPopupMenu();14 //创建两个JMenuItem菜单项,并加入到JPopupMenu组件中

15 JMenuItem item1 =new JMenuItem("查课");16 JMenuItem item2 =new JMenuItem("刷新");17 popupMenu.add(item1);18 popupMenu.addSeparator();19 popupMenu.add(item2);20 //3.为JFrame窗口添加鼠标事件监听器

21 f.addMouseListener(newMouseAdapter() {22 public voidmouseClicked(MouseEvent e) {23 //如果单击的是鼠标右键,显示JPopupMenu菜单

24 if (e.getButton() ==MouseEvent.BUTTON3) { popupMenu.show(e.getComponent(),e.getX(),e.getY());25 }26 }27 });28 }29 public static voidmain(String[] args) {30 //使用SwingUtilities工具类调用createAndShowGUI()方法显示GUI程序

31 SwingUtilities.invokeLater(Example17::createAndShowGUI);32 }33 }

效果:

java下拉菜单option java下拉菜单栏_java基础入门第二版课第八章_02