我找到了解决这个问题的方法。主要思路是激活抗锯齿功能,这需要在Swing和AWT中都进行设置。这些属性分别是:swing.aatext
和awt.useSystemAAFontSettings
,并且必须在操作系统级别上激活。
一种做法是使用一个批处理程序来为您进行设置,但我更喜欢尽可能只有一个可执行文件。
所以,我找到的解决方案是使用System.setProperty(String key, String value)
。将swing.aatext
设置为true
,而将awt.useSystemAAFontSettings
设置为on
。当然,在启动应用程序时,尽早进行这些设置。
以下是一个典型的Swing应用程序示例:
public class App {
public static void main(String[] args)
{
JFrame mainWindow = null;
try {
System.setProperty( "swing.aatext", "true" );
System.setProperty( "awt.useSystemAAFontSettings", "on" );
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName()
);
} catch (Exception e) { }
// Make sure we have nice window decorations.
JFrame.setDefaultLookAndFeelDecorated( true );
JDialog.setDefaultLookAndFeelDecorated( true );
try {
mainWindow = new MainWindow();
mainWindow.setVisible( true );
} catch(Exception e) {
e.printStackTrace();
System.err.println( e.getLocalizedMessage() );
}
}
}