Java Reference
In-Depth Information
Example 7−4: SimpleMenu.java (continued)
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("com.davidflanagan.examples.i18n.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
Search WWH ::




Custom Search