SkinLF(http://www.l2fprod.com/)是一个非常漂亮的Java LookAndFee组件,它的外观可以配置,由一组小图片和一个skinlf-themepack.xml构成。SkinLF的网站上提供了很多Skin下载,这里http://www.l2fprod.com/software/skinlf/jnlp/demo.jnlp可以看到SkinLF和这些外观的演示。可惜的是除了默认的themepack.zip之外,其他外观(好像有很少几个除外)都有中文乱码的问题。其实这是这些外观使用的字体导致的。
打开外观zip文件中的skinlf-themepack.xml,你会发现其他外观的配置文件比themepack.zip中的配置文件多了一些地方:
<font name="Global" value="SansSerif,0,11" />
<font name="InternalFrame.titleFont" value="Trebuchet MS,1,11" />
<font name="TabbedPane.font" value="Tahoma,0,11" />
<font name="MenuBar.font" value="Tahoma,0,11" />
<font name="MenuItem.font" value="Tahoma,0,11" />
<font name="PopupMenu.font" value="Tahoma,0,11" />
<font name="Menu.font" value="Tahoma,0,11" />
把这些注释掉,然后把配置文件放回到zip文件中就可以了。当然你还可以尝试采用其他的字体。
采用JGoodies的LookAndFeel出现乱码,我曾经以为是UTF-8的问题,现在看来可能也是字体导致的。可惜的是,JGoodies的LookAndFeel不能配置。