由于某种原因,我使用的任何版本的Oracle JDK都使用灰度提示而不是subpixel。我注意到这使用Netbeans 7.3甚至Dev nightly + JDK 8。
(CFR)。这些图片:
左边是JDK 6,右边是JDK 8(与JDK 7的行为相同)
Other example, scaled up here.
如何强制Netbeans使用亚像素提示?我甚至跟着the FAQ here,没有太多运气。
我知道Apple的JDK针对OS X字体渲染进行了微调,但我发现我得到的是灰度提示而不是subpixel。
答案 0 :(得分:1)
您似乎需要启用小数指标,如下所示:
g2Image.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);
参见https://bugs.openjdk.java.net/browse/JDK-8023794,还有一个示例程序来测试字体别名。
编辑:OpenJDK 9现在支持正确的子像素AA字体渲染。请在此处查看我的回答How to enable LCD subpixel antialiasing in Swing on OS X?