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不能配置。