在Ubuntu下制作Java桌面的时候为了让界面更美观一点,我一直在Windows下使用substance包,但是在Linux下使用时却发现界面中所有字符都成了乱码,从同学那么找到了解决办法,跟大家分离一下。
首先写使用substance外观的代码,然后在要使窗体显示的代码之前调用一个方法
private static void InitGlobalFont(Font font) {
FontUIResource fontRes=new FontUIResource(font);
for(Enumeration<Object> keys=UIManager.getDefaults().keys();keys.hasMoreElements();){
Object key=keys.nextElement();
Object value=UIManager.get(key);
if (value instanceof FontUIResource) {
UIManager.put(key, fontRes);
}
}
}
这个方法需要一个字体对象作为参数。
添加后再运行一下JAVA程序,字符就正常了。