📄 languagechooser.java
字号:
/*--------------------------------------------------------------------------*
| Copyright (C) 2006 Christopher Kohlhaas |
| |
| This program is free software; you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by the |
| Free Software Foundation. A copy of the license has been included with |
| these distribution in the COPYING file, if not go to www.fsf.org |
| |
| As a special exception, you are granted the permissions to link this |
| program with every library, which license fulfills the Open Source |
| Definition as published by the Open Source Initiative (OSI). |
*--------------------------------------------------------------------------*/
package org.rapla.client.internal;
import java.awt.Component;
import java.util.Locale;
import javax.swing.Action;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JList;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.logger.Logger;
import org.rapla.components.xmlbundle.I18nBundle;
import org.rapla.framework.RaplaContext;
import org.rapla.framework.RaplaException;
import org.rapla.framework.RaplaLocale;
import org.rapla.gui.toolkit.RaplaWidget;
final public class LanguageChooser extends AbstractLogEnabled implements RaplaWidget
{
JComboBox jComboBox;
String country;
RaplaContext context;
public LanguageChooser(Logger logger,RaplaContext context) throws RaplaException {
enableLogging( logger );
this.context = context;
final I18nBundle i18n = (I18nBundle)context.lookup( I18nBundle.ROLE + "/org.rapla.RaplaResources");
final RaplaLocale raplaLocale = (RaplaLocale) context.lookup( RaplaLocale.ROLE );
country = raplaLocale.getLocale().getCountry();
String[] languages = raplaLocale.getAvailableLanguages();
String[] entries = new String[languages.length + 1];
System.arraycopy( languages, 0, entries, 1, languages.length);
jComboBox = new JComboBox(entries);
jComboBox.setRenderer(new DefaultListCellRenderer() {
private static final long serialVersionUID = 1L;
public Component getListCellRendererComponent(
JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus)
{
if ( value != null)
{
value = new Locale( (String) value,country).getDisplayLanguage( raplaLocale.getLocale());
}
else
{
value = i18n.getString("default") + " " + i18n.getString("preferences");
}
return super.getListCellRendererComponent(list,
value,
index,
isSelected,
cellHasFocus);
}
});
//jComboBox.setSelectedItem( raplaLocale.getLocale().getLanguage());
}
public JComponent getComponent() {
return jComboBox;
}
public void setSelectedLanguage(String lang) {
jComboBox.setSelectedItem(lang);
}
public String getSelectedLanguage()
{
return (String) jComboBox.getSelectedItem();
}
public void setChangeAction( Action languageChanged )
{
jComboBox.setAction( languageChanged );
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -