1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Java程序设计 图形用户界面 【十三】菜单

Java程序设计 图形用户界面 【十三】菜单

时间:2021-11-20 00:18:43

相关推荐

Java程序设计 图形用户界面 【十三】菜单

Java程序设计 图形用户界面 【十三】菜单

菜单组件

JMenu与JMenuBar

菜单

JMenuBar组件的功能是用来摆放JMenu组件,当建立完多个JMenu组件之后,需要通过JMenuBar组件来将JMenu组件加入到窗口中

JMenuBar

JMenu

构建菜单演示:

import javax.swing.*;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class Hello {public static void main(String[] args) {JFrame frame = new JFrame("一");JTextArea text = new JTextArea();text.setEditable(true);frame.getContentPane().add(new JScrollPane(text));JMenu file = new JMenu("文件(F)");JMenuBar menuBar = new JMenuBar();menuBar.add(file);frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {super.windowClosing(e);System.exit(1);}});frame.setJMenuBar(menuBar);frame.setVisible(true);frame.setSize(300,200);frame.setLocation(500,500);}}

建立了一个JMenu,然后将JMenu的对象加入到JMenuBar中,再通过JFrame中的setJMenuBar()方法将此菜单栏加入到窗体上

JMenuItem

使用JMenuItem组件在菜单中加入菜单项

JMenuItem继承AbstractButton类,因此JMenuItem也可以理解为一种特殊的JButton组件,当选择某个菜单项时也会触发ActionEvent事件

JMenuItem类

import sun.security.krb5.internal.crypto.KeyUsage;import javax.swing.*;import java.awt.*;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class Hello {public static void main(String[] args) {JFrame frame = new JFrame("一");JTextArea text = new JTextArea();text.setEditable(true);JMenu file = new JMenu("文件");JMenuBar menuBar = new JMenuBar();JMenuItem newItem = new JMenuItem("新建");JMenuItem openItem = new JMenuItem("打开");newItem.setMnemonic('N');openItem.setMnemonic('O');newItem.setAccelerator(KeyStroke.getKeyStroke('N', Event.CTRL_MASK));openItem.setAccelerator(KeyStroke.getKeyStroke('O', Event.CTRL_MASK));file.add(newItem);file.add(openItem);menuBar.add(file);frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {super.windowClosing(e);System.exit(1);}});frame.setJMenuBar(menuBar);frame.setVisible(true);frame.setSize(300,200);frame.setLocation(300,300);}}

事件处理

JMenuItem与JButton都是AbstractButton类的子类,事件处理机制是一样的

import sun.security.krb5.internal.crypto.KeyUsage;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class Hello {public static void main(String[] args) {JFrame frame = new JFrame("一");final JTextArea text = new JTextArea();text.setEditable(true);JMenu file = new JMenu("文件");JMenuBar menuBar = new JMenuBar();JMenuItem newItem = new JMenuItem("新建");JMenuItem openItem = new JMenuItem("打开");newItem.setMnemonic('N');openItem.setMnemonic('O');newItem.setAccelerator(KeyStroke.getKeyStroke('N', Event.CTRL_MASK));openItem.setAccelerator(KeyStroke.getKeyStroke('O', Event.CTRL_MASK));file.add(newItem);file.add(openItem);menuBar.add(file);newItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {text.append("选择了新建\n");}});openItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {text.append("选择了打开\n");}});frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {super.windowClosing(e);System.exit(1);}});frame.add(text);frame.setJMenuBar(menuBar);frame.setVisible(true);frame.setSize(300,200);frame.setLocation(300,300);}.}.

点击菜单项后 出现对应提示文字

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。