You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java Swing字体显示失真,如何设置文本抗锯齿?

Java Swing(JFreeChart)自定义字体显示模糊刺眼问题

我正在开发一款现代风格GUI程序,但Java Swing的文本显示效果极差,十分刺眼。

显示效果如下:
文本显示效果

其中数字的显示形态非常糟糕。我使用了以现代风格和边缘平滑著称的Montserrat自定义字体,但Java完全破坏了它的显示效果。

(显示这些数字的组件来自JFreeChart,无法确定具体是哪个组件,但推测是JLabel)

我已经尝试了以下方法:

  • 通过设置系统属性启用抗锯齿:
    System.setProperty("awt.useSystemAAFontSettings","on");
    System.setProperty("awt.useSystemAAFontSettings","lcd");
    System.setProperty("swing.aatext", "true");
    以上设置均无效。
  • 重写ChartPanel的paintComponent方法:
ChartPanel graficoInnerPanel = new ChartPanel(grafico){
    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
    }
};

内容的提问来源于stack exchange,提问作者r rr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 06:02:37