编写一个 JFrame 窗口,要求如下:
- 窗口包含一个菜单栏和一个 JLabel 标签。
- 菜单栏中有两个菜单,第一个菜单有两个菜单项,它们之间用分隔符分开,第二个菜单有一个菜单项。
- JLabel 标签放置在窗口的中间(即 BorderLayout.CENTER),当点击菜单项的时候,菜单项中的文本显示的 JLabel 标签中。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyMenu extends JFrame implements ActionListener {
JLabel label = new JLabel("请选择菜单", JLabel.CENTER);
JMenuItem aaMenuItem;
JMenuItem baMenuItem;
MyMenu() {
JMenuBar menuBar = new JMenuBar();
JMenu aMenu = new JMenu("菜单A");
JMenu bMenu = new JMenu("菜单B");
JMenuItem aaMenuItem = new JMenuItem("菜单项 AA");
JMenuItem abMenuItem = new JMenuItem("菜单项 AB");
JMenuItem baMenuItem = new JMenuItem("菜单项 BA");
menuBar.add(aMenu);
menuBar.add(bMenu);
aMenu.add(aaMenuItem);
aMenu.addSeparator();
aMenu.add(abMenuItem);
bMenu.add(baMenuItem);
aaMenuItem.addActionListener(this);
abMenuItem.addActionListener(this);
baMenuItem.addActionListener(this);
setJMenuBar(menuBar);
getContentPane().add(label, BorderLayout.CENTER);
}
public void actionPerformed(ActionEvent e) {
JMenuItem source = (JMenuItem) (e.getSource());
label.setText("选择了菜单:" + source.getText());
label.setHorizontalAlignment(JLabel.CENTER);
}
public static void main(String[] args) {
JFrame frame = new MyMenu();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
frame.setVisible(true);
}
}