如何使JTextPane绘制抗锯齿字体?

Asa*_*saf 2 java swing antialiasing

在一个swing应用程序中,我正在JComponent使用自定义渲染文本Graphics.drawString().这是一个示例:
aa文本http://img525.imageshack.us/img525/4928/drawstringsample.jpg
在同一个应用程序中,我正在使用a渲染文本JTextPane.这是一个示例:
alt text http://img28.imageshack.us/img28/1134/jtextpanesample.jpg

你能注意到较低的样品有点"污迹"吗?好吧,我无法弄清楚如何让它看起来像上面的样本.

谢谢,asaf :-)


更新:

  • System.setProperty("awt.useSystemAAFontSettings","false")而且"lcd"也没有工作.
  • ((Graphics2D)g).setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF)paint()不工作
  • putClientProperty(sun.swing.SwingUtilities2.AA_TEXT_PROPERTY_KEY, Boolean.TRUE)java.lang.ClassCastException: java.lang.Boolean cannot be cast to sun.swing.SwingUtilities2$AATextInfo

Luk*_*nia 6

这将导致JLabel中的抗锯齿字体.确保你调用super.paintComponent(g); 设置RenderingHints后.

JLabel lblFont = new JLabel(){

            @Override
            public void paintComponent(Graphics g) {
                Graphics2D graphics2d = (Graphics2D) g;
                graphics2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                        RenderingHints.VALUE_ANTIALIAS_ON);
                super.paintComponent(g);
            }
        };
Run Code Online (Sandbox Code Playgroud)


Asa*_*saf 5

putClientProperty(SwingUtilities2.AA_TEXT_PROPERTY_KEY, null);