2011-12-06 253 views
3

我正在開發一個帶有Synth外觀的Java swing應用程序。該應用程序具有包含一些文本的背景圖像,並且我需要在此背景圖層上方的一些「活動」文本(JLabel中的文本)。但是,我選擇的字體(Verdana)由於某種原因在Swing中呈現非常糟糕,因此活動文本的字體與背景的字體不匹配。有誰知道一種讓文本更平滑的方法 - 在Swing中看?我發現類似問題herehere,但我不確定AA對其他應用程序映像有什麼影響,或者是否使用AWT桌面屬性或-Dswing.aatext = true標誌。任何提示將不勝感激。謝謝!Swing字體渲染

編輯:我已經測試了這個在OSX以及Windows 7,都表現出相同的效果。

+2

不要做自定義的文本繪圖,而是用文本配置一個組件(f.i. JLabel)並在圖形頂部顯示標籤 – kleopatra

+0

對不起,我應該更具體一些,JLabels中的文本不會很好地渲染。 – SuperTron

+0

@camickr - 我們不同意這一點,正如我們所知道的:-)使用桌面屬性是非常困難的,沒有任何保證讓它在任何地方都正確無誤。 「最好的」結果是laf可以做到的,深藏在陽光包內,這就是爲什麼我建議_always_使用JLabel ...... – kleopatra

回答

2

這是Swing本身的問題,我相信。看看相關的問題。使用FontForge禁用提示可以幫助我的經驗。

+1

看到問題在於我無法在每個用戶計算機上經歷該過程:O – SuperTron

+0

如果可以切換,SWT在字體呈現方面做得更好。否則,你可以找到字體渲染庫。 –

+0

Linux'暗示恐懼症:-)好奇:設置awt.desktophints會發生什麼(如http://java.sun.com/javase/6/docs/api/java/awt/doc-files/DesktopProperties.html所述)關閉? – kleopatra