📄 simplemenu.java
字号:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Locale;
import java.util.ResourceBundle;
import java.util.MissingResourceException;
/**自动创建中文菜单类 */
public class SimpleMenu {
public static JMenu create(ResourceBundle bundle,
String menuname, String[] itemnames,
ActionListener listener){
// 从ResourceBundle当中获得Label. 使用其名称作为缺省Label.
String menulabel;
try { menulabel = bundle.getString(menuname + ".label"); }
catch(MissingResourceException e) { menulabel = menuname; }
// 创建菜单.
JMenu menu = new JMenu(menulabel);
// 创建子菜单.
for(int i = 0; i < itemnames.length; i++) {
String itemlabel;
try {
itemlabel =bundle.getString(menuname+"."+itemnames[i]+".label");
}
catch (MissingResourceException e) {
itemlabel = itemnames[i];
}
JMenuItem item = new JMenuItem(itemlabel);
// 为子菜单获得快捷键
try {
String acceleratorText =
bundle.getString(menuname+"."+itemnames[i]+".accelerator");
item.setAccelerator(KeyStroke.getKeyStroke(acceleratorText));
}
catch (MissingResourceException e) {}
// 为子菜单加上处理函数.
if (listener != null) {
item.addActionListener(listener);
item.setActionCommand(itemnames[i]);
}
// 把子菜单加入menu类当中.
menu.add(item);
}
return menu;
}
public static void main(String[] args) {
// 获得Locale对象,缺省使用系统,或者在命令行参数中指定
Locale locale;
if (args.length == 2) locale = new Locale(args[0], args[1]);
else locale = Locale.getDefault();
ResourceBundle bundle =ResourceBundle.getBundle("Menus_zh_CN",locale);
// 创建一个简单的GUI窗口显示此菜单
String sTempDisplayname=locale.getDisplayName(Locale.getDefault());
final JFrame f = new JFrame("SimpleMenu: " + sTempDisplayname);
JMenuBar menubar = new JMenuBar(); .
f.setJMenuBar(menubar);
// 定义子菜单消息处理函数.
ActionListener listener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
String s = e.getActionCommand();
Component c = f.getContentPane();
if (s.equals("red")) c.setBackground(Color.red);
else if (s.equals("green")) c.setBackground(Color.green);
else if (s.equals("blue")) c.setBackground(Color.blue);
}
};
// 使用获得的资源创建菜单
JMenu menu = SimpleMenu.create(bundle, "colors",new String[] {"red", "green", "blue"},listener);
// 把菜单加入GUI窗口并且显示
menubar.add(menu);
f.setSize(300, 150);.
f.setVisible(true); .
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -