Title: Java Internationalization
ISBN: 0596000197
US Price: $ 39.95

© 2001 O'Reilly & Associates, Inc.

Reviews : Java Books :
Java Internationalization : Isolating Locale-Specific Data With Resource Bundles

List Resource Bundles

The ListResourceBundle class takes its name from the fact that it manages a list of resources. Those resources are stored in a cla0ss file, allowing you to provide localized resources for any datatype. Resources in a ListResourceBundle are not limited to text strings, as are the resources in a PropertyResourceBundle. For example, images are one example of resources that can be localized, but can't be stored as text strings. The company logo is one common image important to most companies. Companies pride themselves on, and can earn hefty profits from, logo recognition alone. Logos can be associated with a company or a particular product.

ListResourceBundle, an abstract subclass of ResourceBundle stores its keys and values in a two-dimensional Object array. This mechanism allows you to create resources of arbitrary datatypes unlike the PropertyResourceBundle, in which both the keys and values must be strings. When you use a ListResourceBundle, the only restriction is that the keys must be specified as strings.

When you create a subclass of ListResourceBundle, you must override the getContents() method that returns a two- dimensional Object array. The first element is a key (a String) used to access the value. The second element of the pair can be of any datatype, such as an AWT Button, an Integer number, or a String. Example 4-13 shows a simple ListResourceBundle called SampleResourceBundle and illustrates how to create a subclass of ListResourceBundle.

Example 4-13. A Subclass of ListResourceBundle Called SampleResourceBundle

import java. awt.*;
import java. util.*;

public class SampleResourceBundle extends ListResourceBundle {

  public Object [][] getContents() {
    return contents;
  }

  static final Object [][] contents = {
    {" okButton", new Button(" OK")},
    {" negativeInteger", new Integer(-1)},
    {" textString", "Thank you for reading our book"}
  };
}

The ResourceBundle class provides a method called getObject( String key). When you retrieve a value from your resource bundle, you must cast it to its proper type. To retrieve the key okButton from the resource bundle in Example 4-13, we would pass the okButton string to the getObect method. This method would return an Object, which would then be cast to Button to use the Button object.

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.