Java Reference
In-Depth Information
Writing Internationalization Convenience Routines
Problem
You want convenience.
Solution
I've got it.
Discussion
Convenience routines are mini-implementations that can be more convenient and effective
than the general-purpose routines. Here I present the convenience routines to create buttons,
menus, etc. First, a simple one,
mkMenu()
:
/** Convenience routine to make up a Menu with its name L10N'd */
Menu mkMenu(ResourceBundle b, String menuName) {
String label;
try { label = b.getString(menuName+".label"); }
catch (MissingResourceException e) { label=menuName; }
return new Menu(label);
}
There are many such routines that you might need; I have consolidated several of them into
my class
I18N.java
, which is part of the
com.darwinsys.swingui
package. All methods are
static
, and can be used without having to instantiate an I18N object because they do not
maintain any state across calls. The method
mkButton()
creates and returns a localized
But-
ton
, and so on. The method
mkDialog
is slightly misnamed because the
JOptionPane
meth-
od
showMessageDialog()
doesn't create and return a
Dialog
object, but it seemed more
consistent to write it as shown here:
package
package
com
.
darwinsys
.
swingui
;
import
import
java.util.MissingResourceException
java.util.MissingResourceException
;
import
import
java.util.ResourceBundle
java.util.ResourceBundle
;
import
import
javax.swing.*
javax.swing.*
;