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
pane66private 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 }
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论