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下做过测试。
在其他平台下,可能需要有宋体字库。
bootcool@163.net