无序列表项目符号在JEditorPane中看起来像素化

Thu*_*rge 5 java swing jeditorpane html-lists htmleditorkit

我正在使用HTML无序列表在JEditorPane中显示一些文本.HTML的示例如下所示:

<ul><li>Cautious</li>
<li>Curious</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

这一切都很好,但奇怪的是,生成的子弹<li>看起来与它旁边的文本质量不同.(如果重要的话,运行Mac OS 10.7.5).圆形子弹看起来像块状和像素化:

正常缩放:

在此输入图像描述

放大:

在此输入图像描述

当它被放大时尤为明显,这只是一块不对称且缺乏任何形式的抗锯齿的像素块,这使得圆形子弹点不那么令人信服.与旁边的文字相比,即使在正常变焦的情况下,它看起来也是一个挑剔的眼睛.

有什么办法可以解决这个问题吗?

编辑:使用•字符(在Mac上为option+ 8)在文本中创建一个看起来像素化的较小的项目符号点.我当然可以手动插入这个字符而不是使用<ul><li>,但如果可以,我想使用HTML无序列表.

Enw*_*red 6

使用渲染提示打开消除锯齿属性KEY_ANTIALIASING.

您可以全局设置一些渲染提示,但这似乎不起作用KEY_ANTIALIASING,因此您需要覆盖paint()方法JEditorPane.

public class HTMLTest {    

      public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
          @Override
          public void run() {
            String html = "<ul><li>Cautious</li><li>Curious</li></ul>";
            JEditorPane pane = new JEditorPane("text/html", html) {

              public void paint(Graphics g) {
                Graphics2D g2d = (Graphics2D) g.create();
                g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
                super.paint(g2d);
                g2d.dispose();
              }

            };
            pane.setVisible(true);

            JOptionPane.showMessageDialog(null, pane);
          }
        });    
      }
}
Run Code Online (Sandbox Code Playgroud)