2013-05-19 17 views
2

由於某種原因,Oracle的JDK的任何版本我使用的是用灰度暗示,而不是子像素。我注意到這個使用NetBeans 7.3,甚至開發每晚+ JDK 8怎樣才能啓用JDK7 +子像素暗示OS X

CFR。這些照片:左邊

JDK 6,VS JDK 8右側(相同的行爲與JDK 7) enter image description here

Other example, scaled up here.

我怎麼能強迫Netbeans的使用像素提示?我甚至已經跟着the FAQ here,沒有多少運氣。

我知道,蘋果的JDK是微調爲OS X字體渲染,但我覺得也奇怪,我得到灰度暗示,而不是子像素。

回答

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?

+1

我相信你是對的。現在,有沒有辦法在不重新編譯IDE的情況下啓用它? [就像一個標誌](http://docs.oracle.com/javase/6/docs/technotes/guides/2d/flags.html#aaFonts)? –

+0

看起來您可以使用標誌-J-Dorg.netbeans.editor.aa.extra.hints = true,但它似乎不起作用,所以netbeans中的其他內容必須使其被禁用,請參閱此錯誤報告; https://netbeans.org/bugzilla/show_bug.cgi?id=216655 – Tor

+0

我在Github上共享了一個Netbeans模塊,它可能有助於使用抗混淆參數,但是現在我開始相信這是真的在JDK不能圍繞 –