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无序列表.
使用渲染提示打开消除锯齿属性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)