JAVA:简单添加菜单界⾯(swing)  1package u;
2
3import java.awt.Color;
4import java.awt.Container;
5import java.awt.FlowLayout;
6import java.awt.GridLayout;
7import java.awt.event.ActionEvent;
8import java.awt.event.ActionListener;
9import java.awt.event.ItemEvent;
10import java.awt.event.ItemListener;
11import java.awt.event.KeyEvent;
12
13import javax.swing.JFrame;
14import javax.swing.JLabel;
15import javax.swing.JMenu;
16import javax.swing.JMenuBar;
17import javax.swing.JMenuItem;
18import javax.swing.JPanel;
19import javax.swing.JRadioButtonMenuItem;
20
21public class MenuManagerShow {
22private MenuManagerShow() {
23        init();
24    }
25
26public static void main(String[] args) {
27        MenuManagerShow menuManager = new MenuManagerShow();
28        menuManager.show();
29    }
30
31private void show() {
32
33    }
34
35class MenuItemListener implements ActionListener {
36        @Override
37public void actionPerformed(ActionEvent e) {
38            statusLabel.setText("JMenu Item clicked:" + e.getActionCommand() + ".");
39        }
40    }
41
42/**
43    * 给主窗⼝设置背景⾊
44    *
45    * @param mainFrame
46    *            主窗⼝
47    * @see分析:JFrame默认使⽤流式布局管理器(FlowLayout)将整个窗体进⾏覆盖操作,<br>
48    *      设置的颜⾊被布局管理器给覆盖住了,所以⽆法看见。<br>
49    *      解决:在JFrame中添加⼀个⾯板容器,使得⾯板容器对窗体覆盖即可。<br>
50*/
51private void initFrameBgColor(JFrame mFrame) {
52        Container pane = ContentPane();
53        pane.ange);
54    }
55
56/**
57    * 标题
58*/
59private static final String MENU_MANAGER_TITILE = "Manager Tool";
60
61private JFrame mainFrame;
62private JLabel headerLabel;
63private JLabel statusLabel;
64private JPanel controlPanel;
65
pane
66private void init() {
67// 主界⾯
68        mainFrame = new JFrame();
69// 标题
70        mainFrame.setTitle(MENU_MANAGER_TITILE);
71// 设置窗⼝⼤⼩
72        mainFrame.setSize(400, 400);
73// 设置窗体的位置属性
74        mainFrame.setLocation(400, 200);
75// 设置窗体关闭时退出程序(3)
76        mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
77/*
78        * mainFrame.addWindowListener(new WindowAdapter() { public void
79        * windowClosing(WindowEvent windowEvent) { it(0); } });
80*/
81// 设置允许调整窗体⼤⼩
82        mainFrame.setResizable(true);
83        mainFrame.setLayout(new GridLayout(3, 1));
84// 下边这种⽅式设置第⼀个Frame的背景⾊不⽣效,需要⽤initFrameBgColor()⾥的⽅式
85// mainFrame.setBackground(Color.blue);
86        initFrameBgColor(mainFrame);
87
88        headerLabel = new JLabel("11", JLabel.CENTER);
89        statusLabel = new JLabel("22", JLabel.CENTER);
90        controlPanel = new JPanel();
91        controlPanel.setLayout(new FlowLayout());
92        controlPanel.ay);
93
94        mainFrame.add(headerLabel);
95        mainFrame.add(controlPanel);
96        mainFrame.add(statusLabel);
97
98        initMenuBar(mainFrame);
99
100        mainFrame.setVisible(true);
101    }
102
103/**
104    * 初始化菜单栏
105    *
106    * @param mainFrame
107*/
108private void initMenuBar(JFrame mFrame) {
109// 创建菜单栏
110final JMenuBar menuBar = new JMenuBar();
111
112// 创建菜单栏菜单
113        JMenu fileMenu = new JMenu("File");
114        JMenu editMenu = new JMenu("Edit");
115final JMenu aboutMenu = new JMenu("About");
116final JMenu linkMenu = new JMenu("Links");
117
118// 创建菜单栏菜单⼦项
119        JMenuItem newMenuItem = new JMenuItem("New");
120        newMenuItem.setMnemonic(KeyEvent.VK_N);
121        newMenuItem.setActionCommand("New");
122
123// 创建菜单栏菜单⼦项:允许是否选中
124final JRadioButtonMenuItem showLinksMenu = new JRadioButtonMenuItem("Show Links", true); 125        showLinksMenu.addItemListener(new ItemListener() {
126public void itemStateChanged(ItemEvent e) {
127// state,结果1表⽰选中,结果2表⽰不选中
128// System.out.StateChange());
129// 获取第三个菜单栏菜单
130if (Menu(3) != null) {
131                    ve(linkMenu);
132// 重新绘制主界⾯
133                    paint();
134                } else {
135                    menuBar.add(linkMenu);
136                    paint();
137                }
138            }
139        });
140
141// 创建
142        MenuItemListener menuItemListener = new MenuItemListener();
143
144// 添加点击的动作
145        newMenuItem.addActionListener(menuItemListener);
146
147        fileMenu.add(newMenuItem);
148        fileMenu.add(showLinksMenu);
149
150        menuBar.add(fileMenu);
151        menuBar.add(editMenu);
152        menuBar.add(aboutMenu);
153        menuBar.add(linkMenu);
154// 添加菜单栏后,下边的组件⾼度会被挤压变⼩
155        mFrame.setJMenuBar(menuBar);
156    }
157 }