jdk1.3和jdk1.4的swing组件对中文显示解决办法

    技术2022-05-11  115

    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


    最新回复(0)