2

I am writing a small application in swing. I am using Ratpoison as my window manager (with wmname LG3D) and Netbeans as IDE. My application fonts when started from KDE or directly from Netbeans look ok. Started from ratpoison they looks like this:

Screenshot http://img195.imageshack.us/img195/8079/swingfontsratpoison.png Click for full size

4

2 回答 2

0

KDE 可能会在启动时向系统添加更多字体。

在 KDE 和 ratpoison 中执行此操作:

fc-list -v  | grep "file:\|fullname:\|^$"

并比较字体列表以查看缺少的内容。

如果缺少某个目录,请将其添加到 /etc/fonts/fonts.conf 中的新条目中。

如果只是缺少一些字体,您可以将其复制到 ~/.fonts(假设您在 fonts.conf 中配置了此目录)

如果所有字体都相同,请尝试将 /etc/fonts/conf.d 中的所有配置移动到临时目录并运行

fc-cache -f

和测试。

如果看起来更好,开始添加更多配置,再次运行 fc-cache -f ,再次重新启动 java 应用程序并进行测试。

重复直到找到破坏 java 字体的配置。最后,您应该将所有配置都减去破坏 java.util 的配置。

通常它的一些配置将字体设置为首选字体,java会盲目使用,而不是更好的字体。

于 2012-06-21T14:02:25.940 回答
0

实际上,您可以在 Swing 中使用任何系统字体。

很容易,只需添加一句话:yourComponent.setFont(new Font("Tahoma", Font.BOLD|Font.ITALIC, 16));

或者您可以更改整体设置UIManager.put("label.font", new Font("Tahoma", Font.BOLD, 16));

put 方法的“键”通常是指示您要更改的内容的字符串,例如:label.font、button.font、label.color、textfield.font 等。所有这些都是小情况

并且不要忘记在开头导入java.awt.Font AND/OR javax.swing.UIManager !

于 2012-12-06T10:21:06.193 回答