站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Java 专题简单的国际化菜单

简单的国际化菜单

摘要: 简单的国际化菜单

</td> </tr> <tr> <td height="35" valign="top" class="ArticleTeitle"><table width="739" border="0"> <tr> <td> </td> </tr> </table>



import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Locale;
import java.util.ResourceBundle;
import java.util.MissingResourceException;

/** A convenience class to automatically create localized menu panes */
public class SimpleMenu {
/** The convenience method that creates menu panes */
public static JMenu create(ResourceBundle bundle, String menuname, String[] itemnames,
ActionListener listener)
{
// Get the menu title from the bundle. Use name as default label.
String menulabel;
try { menulabel = bundle.getString(menuname + ".label"); }
catch(MissingResourceException e) { menulabel = menuname; }

// Create the menu pane.
JMenu menu = new JMenu(menulabel);

// For each named item in the menu.
for(int i = 0; i < itemnames.length; i++) {
// Look up the label for the item, using name as default.
String itemlabel;
try {
itemlabel =bundle.getString(menuname+"."+itemnames[i]+".label");
}catch (MissingResourceException e) { itemlabel = itemnames[i]; }

JMenuItem item = new JMenuItem(itemlabel);

// Look up an accelerator for the menu item
try {
String acceleratorText =bundle.getString(menuname+"."+itemnames[i]+".accelerator");
item.setAccelerator(KeyStroke.getKeyStroke(acceleratorText));
}catch (MissingResourceException e) {}

// Register an action listener and command for the item.
if (listener != null) {
item.addActionListener(listener);
item.setActionCommand(itemnames[i]);
}

// Add the item to the menu.
menu.add(item);
}

// Return the automatically created localized menu.
return menu;
}

/** A simple test program for the above code */
public static void main(String[] args) {
// Get the locale: default, or specified on command-line
Locale locale;
if (args.length == 2) locale = new Locale(args[0], args[1]);
else locale = Locale.getDefault();
// Get the resource bundle for that Locale. This will throw an
// (unchecked) MissingResourceException if no bundle is found.
ResourceBundle bundle =ResourceBundle.getBundle("Menus",locale);

// Create a simple GUI window to display the menu with
final JFrame f = new JFrame("SimpleMenu: " + // Window title
locale.getDisplayName(Locale.getDefault()));
JMenuBar menubar = new JMenuBar(); // Create a menubar.
f.setJMenuBar(menubar); // Add menubar to window

// Define an action listener for that our menu will use.
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);
}
};
// Now create a menu using our convenience routine with the resource
// bundle and action listener we've created
JMenu menu = SimpleMenu.create(bundle, "colors", new String[] {"red", "green", "blue"},
listener);

// Finally add the menu to the GUI, and pop it up
menubar.add(menu); // Add the menu to the menubar
f.setSize(300, 150); // Set the window size.
f.setVisible(true); // Pop the window up.
}
}

运行:
java SimpleMenu
或:
java SimpleMenu en us

附属性文件: Menus_en_US.properties
colors.label=Colors
colors.red.label=red
colors.red.accelerator=alt R
colors.green.label=green
colors.green.accelerator=alt G
colors.blue.label=blue
colors.bule.accelerator=alt B

Menus_zh_CN.properties

colors.label=\u989c\u8272
colors.red.label=\u7ea2
colors.red.accelerator=alt R
colors.green.label=\u7eff
colors.green.accelerator=alt G
colors.blue.label=\u5170
colors.blue.accelerator=alt B

</td> </tr> <tr>


↑返回目录
前一篇: Swing 入门教程
后一篇: 用AudioClip播放声音