jdk1.3和jdk1.4的swing组件对中文显示一直是很让人头痛的事。
为了解决这个问题,我采用了这样的方法。
import java.awt.*;
import javax.swing.UIManager;
public class JOfficeUIManager extends UIManager {
public Font _font ;
private static String _name;
private static int _style;
private static int _size;
public JOfficeUIManager(String name,int style,int size){
_name = name;
_style = style;
_size = size;
if(_font == null)
_font = new Font(name,style,size);
}
public JOfficeUIManager(Font font){
_font = font;
}
public void setFont(){
put("Button.font",_font);
put("ToggleButton.font",_font);
put("RadioButton.font",_font);
put("CheckBox.font",_font);
put("ColorChooser.font",_font);
put("ToggleButton.font",_font);
put("ComboBox.font",_font);
put("ComboBoxItem.font",_font);
put("InternalFrame.titleFont",_font);
put("Label.font",_font);
put("List.font",_font);
put("MenuBar.font",_font);
put("Menu.font",_font);
put("MenuItem.font",_font);
put("RadioButtonMenuItem.font",_font);
put("CheckBoxMenuItem.font",_font);
put("PopupMenu.font",_font);
put("OptionPane.font",_font);
put("Panel.font",_font);
put("ProgressBar.font",_font);
put("ScrollPane.font",_font);
put("Viewport",_font);
put("TabbedPane.font",_font);
//put("Table.font",_font);
put("TableHeader.font",_font);
put("TextField.font",_font);
put("PasswordFiled.font",_font);
put("TextArea.font",_font);
put("TextPane.font",_font);
put("EditorPane.font",_font);
put("TitledBorder.font",_font);
put("ToolBar.font",_font);
put("ToolTip.font",_font);
put("Tree.font",_font);
}
public void setFont(Font font){
put("Button.font",font);
put("ToggleButton.font",font);
put("RadioButton.font",font);
put("CheckBox.font",font);
put("ColorChooser.font",font);
put("ToggleButton.font",font);
put("ComboBox.font",font);
put("ComboBoxItem.font",font);
put("InternalFrame.titleFont",font);
put("Label.font",font);
put("List.font",font);
put("MenuBar.font",font);
put("Menu.font",font);
put("MenuItem.font",font);
put("RadioButtonMenuItem.font",font);
put("CheckBoxMenuItem.font",font);
put("PopupMenu.font",font);
put("OptionPane.font",font);
put("Panel.font",font);
put("ProgressBar.font",font);
put("ScrollPane.font",font);
put("Viewport",font);
put("TabbedPane.font",font);
put("TableHeader.font",font);
put("TextField.font",font);
put("PasswordFiled.font",font);
put("TextArea.font",font);
put("TextPane.font",font);
put("EditorPane.font",font);
put("TitledBorder.font",font);
put("ToolBar.font",font);
put("ToolTip.font",font);
put("Tree.font",font);
}
public Font getFont(){
return _font;
}
}
在构建其中这样做:
///
JOfficeUIManager _UIManager = new JOfficeUIManager("Simsun",0,12);
_UIManager.setFont();
///
就可以了。
我只在中文Windows下做过测试。
在其他平台下,可能需要有宋体字库。