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

时间:2013-04-07 23:02:33

标签: java swing html-lists jeditorpane htmleditorkit

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

<ul><li>Cautious</li>
<li>Curious</li>
</ul>

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

正常缩放:

enter image description here

放大:

enter image description here

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

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

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

2 个答案:

答案 0 :(得分:6)

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

您设置了一些渲染提示globally,但这似乎不适用于KEY_ANTIALIASING,因此您需要覆盖paint()的{​​{1}}方法。

JEditorPane

答案 1 :(得分:2)

您需要修改项目符号。创建一个外观更好的项目符号的图像,然后将CSS添加到编辑器窗格中,以使其使用新的项目符号图像。

JEditorPane pane = new JEditorPane();
String u = "C:/path/to/bullet.png";
HTMLEditorKit htmlEditorKit = (HTMLEditorKit) pane.getEditorKit();
StyleSheet styleSheet = htmlEditorKit.getStyleSheet();
styleSheet.addRule(String.format("ul{list-style-image:url(%s);margin:0px 20px;", u));