Java Swing - 更好的字体平滑处理

6

在Java的Swing应用程序中,有没有可能调整字体平滑?

以下是一些比较:

enter image description here

差别不是很大,但如果你仔细看,Adobe Story(和许多其他Flash应用程序)具有更强和更好的平滑效果。

我在Java中编写文本编辑器,并且我希望在JTextPane和JLabels上实现这样的平滑效果。


请看这个问题:https://dev59.com/HFvUa4cB1Zd3GeqPwb-3 - Cyrille Ka
1
完全不正确,从这些截图中可以看出差异很大,为了更快地得到帮助,请发布一个SSCCE,它是短小、可运行、可编译的,就像上午描述的我的Java应用程序一样。 - mKorbel
https://dev59.com/OnVC5IYBdhLWcg3wz0h9 - arkon
2个回答

2

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

这是一个自定义JTextArea的示例

public class CustomTextArea extends JTextArea {

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

}

你可能需要进一步修改,但这是基本概念。


-4

你可以在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
这完全不相关! - Janus Troelsen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接