В листинге 9.11 показана программа I18NDemo3, которая использует данный набор классов пакетов ресурсов. Метод startAppO данного MID-лета создает экземпляр соответствующего класса пакета ресурсов. Он создает имя класса, связывая базовое имя семейства файлов локализованных ресурсов, I18NDemoResources, с конечной региональной настройкой. С помощью всего лишь нескольких операторов приложение получает доступ ко всем локализованным ресурсам.
import javax.microedition.midlet.MIDlet;
import javax.microedition.Icdui.Display;
import javax.microedition.Icdui.Displayable;
import]avax.microedition.Icdui.Form;
import Java.util.Hashtable;
Третья версия приложения IlSNDemo.
Данная версия IlSNDemo использует пакет ресурсов для определения локализованных ресурсов. Приложение определяет текущую региональную настройку и пытается загрузить связанный с ней пакет, содержащий соответствующие локализованные ресурсы. Если оно не может найти эти ресурсы, оно загружает ресурсы U.S. English, представленные языком en_US и страной назначения.
Этот подход наиболее предпочтителен. Легко поддерживаются локализованные ресурсы, отличные от строк.
*/
public class I18NDemo3 extends MIDlet
{
// Региональная застройка, указанная для выполнения
// данного МID-лета.
private String locale;
// Пакет ресурсов, который содержит локализованные ресурсы
// для выполнения данного приложения, private static ResourceBundle bundle;
{
// Displayable. Этот компонент отображается
// на экране.
private HelloForm3 form;
// Экземпляр Display. Этот объект управляет всеми
// компонентами Displayable для данного MID-лета.
private Display display;
// Экземпляр MID-лета.
private static!18NDerao3 instance;
/**
Конструктор No-arg.
*/
public I18NDemo3()
{
super();
instance = this;
}
/**
Получает экземпляр данного класса, который существует в действующем приложении.
@выдает экземпляр, созданный при запуске приложения.
*/
public static I18NDemo3 getlnstance()
{
if (instance == null)
{
instance — new I18NDemo3();
}
return instance;
}
/**
Получает пакет ресурсов, используемый данным MID-летом.
Этот метод полезен для других классов, которым необходим доступ к локализованным ресурсам приложения.
@выдает локализованные ресурсы MID-лета.
*/
public static ListResourceBundle getResourceBundle ()
{
return (ListResourceBundle) bundle;
}
/**
Запускает MID-лет. Определяет текущую региональную настройку среды исполнения и использует ее для создания имени пакета локализованных ресурсов. Использует это имя для создания имени класса Java, который затем загружается с помощью Class. Если нет соответствия пакету ресурсов, по умолчанию используется пакет ресурсов U.S. English.