📄 languagechooser.java
字号:
/**
* LanguageChooser.java
*
* Oct. 15, 2004
*
* (c) Copyright. 2004. Motorola , Inc. ALL RIGHTS RESERVED.
* This notice does not imply publication.
*
*/
import javax.microedition.lcdui.*;
import java.util.Vector;
/**
*
* The Language Chooser UI,
*/
public class LanguageChooser extends List implements CommandListener {
static LanguageChooser languageChooser = null;
int oldLocale = -1, newLocale = -1;
static public final int LOCALE_EN = 0;
static public final int LOCALE_SIM_CN = 1;
static public final int LOCALE_TRA_CN = 2;
static public final int LOCALE_AUTO = 3;
static public final String[] locales = {"en", "sc", "tc", "Default"};
static private ResourceBundle langChooserBundle, enBundle, simChBundle, traChBundle;
private Vector listeners = new Vector();
private static Command switchLangOK = null;
static private boolean initialized = false;
private LanguageChooser (String title) {
super (title, List.EXCLUSIVE);
}
public static LanguageChooser getLanguageChooser (String locale) {
langChooserBundle = ResourceBundle.getResourceBundle ("LanguageChooser", locale );
if (!initialized) {
simChBundle = ResourceBundle.getResourceBundle ("LanguageChooser", locales[LOCALE_SIM_CN]);
traChBundle = ResourceBundle.getResourceBundle ("LanguageChooser", locales[LOCALE_TRA_CN]);
enBundle = ResourceBundle.getResourceBundle ("LanguageChooser", locales[LOCALE_EN]);
languageChooser = new LanguageChooser("title");
initialized = true;
}
for (int i = languageChooser.size () - 1; i >=0 ; i --) {
languageChooser.delete (i);
}
languageChooser.setTitle (langChooserBundle.getString ("title"));
languageChooser.append (enBundle.getString ("language"), null);
languageChooser.append (simChBundle.getString ("language"), null);
languageChooser.append (traChBundle.getString ("language"), null);
languageChooser.append (langChooserBundle.getString ("auto"), null);
if (switchLangOK != null)
languageChooser.removeCommand (switchLangOK);
switchLangOK = new Command(langChooserBundle.getString("OK"), Command.OK, 1);
languageChooser.addCommand (switchLangOK);
languageChooser.setCommandListener (languageChooser);
return languageChooser;
}
public void addLocaleChangeListener (LocaleChangeListener listener) {
listeners.addElement (listener);
}
public boolean removeLocaleChangeListener (LocaleChangeListener listener) {
return listeners.removeElement (listener);
}
public void commandAction (Command c, Displayable d) {
if (c == switchLangOK) {
int newLocale = getSelectedIndex();
if (newLocale == LOCALE_AUTO) {
String strLocale = I18NDemo.getDefaultLocale ();
int i;
for (i = 0; i < locales.length; i++)
if (locales[i].equals (strLocale))
break;
newLocale = i;
}
if (oldLocale!= newLocale){
for (int i = 0; i < listeners.size(); i++) {
LocaleChangeListener listener = (LocaleChangeListener)listeners.elementAt(i);
listener.localeChanged(locales[newLocale]);
}
oldLocale = newLocale;
}
I18NDemo.myDisplay.setCurrent (I18NDemo.mainUI);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -