Java Swing - 更好的字体平滑

时间:2013-02-19 18:10:17

标签: java swing fonts smoothing

是否有可能在Java swing应用程序中调整字体平滑?

以下是一些比较:

enter image description here

差异并不大,但如果你看得足够近,Adobe Story(以及许多其他Flash应用程序)都会有更强大,更好的平滑。

我用Java编写文本编辑器,我希望在JTextPane和JLabels上的应用程序中实现这样的平滑。

2 个答案:

答案 0 :(得分:1)

根据您用于显示文本的对象,您需要自定义其中一个并覆盖负责绘制文本的方法

以下是自定义JTextArea的示例

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);
    }

}

您可能需要对其进行更多修改,但这是基本概念

答案 1 :(得分:-3)

您可以在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

的信息