2013-02-19 102 views
6

有沒有可能在Java Swing應用程序中調整字體平滑?Java Swing - 更好的字體平滑

下面是一些比較:

enter image description here

的差別不是很大,但如果你看夠近,Adobe公司的故事(和很多其他的Flash應用程序)具有更強的和更好的平滑。

我在Java中編寫文本編輯器,我想在JTextPane和JLabels的應用程序中實現這樣的平滑。

+0

看看這個問題:http://stackoverflow.com/questions/7593944/how-to-do-font-smoothing-for-awt-swing-application – 2013-02-19 18:15:20

+1

不是真的,從這張截圖中得到的同意是差別很大的,爲了更快地發佈一個[SSCCE](http://sscce.org/)更好的幫助,簡短,可運行,可編譯,就像我描述的那樣'我的Java Application' – mKorbel 2013-02-19 18:17:33

+0

http://stackoverflow.com/questions/179955/how-do-you-enable-anti-aliasing-in-arbitrary-java-apps – 2013-04-07 14:36:31

回答

-2

您可以在一個JLabel使用HTML標籤,如:

<html><body><br/><br/><body/><html/> 

例如,你可以讓一個按鈕,像這樣:

button = new JButton("<html><b><u>T</u>wo</b><br>lines</html>"); 

這看起來是這樣的:enter image description here

但這裏更多關於HTML標籤LINK

+1

這完全沒有關係! – 2013-05-31 11:01:31

0

取決於你使用什麼對象t O顯示你的文字,你需要創建一個自定義它的一個並覆蓋是負責繪製文本

這裏的方法是

public class CustomTextArea extends JTextArea { 

    @Overwrite 
    public void paintComponent(Graphics g) { 
     Graphics2D g2 = (Graphics2D) g.create(); 
     g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); 
     super.paintComponent(g); 
    } 

} 

您可能需要修改它的一些自定義的JTextArea的例子更多,但基本概念