Java - 为什么这个要点有点毛病?

时间:2012-07-20 13:54:40

标签: java swing jtextpane htmleditorkit bulletedlist

我有一个JTextPane和一个JButton作为我的一个项目的一部分。该按钮为JTextPane添加了一个项目符号点:

HTMLEditorKit.InsertHTMLTextAction bulletAction = new
    HTMLEditorKit.InsertHTMLTextAction("Bullet", "<li></li>",
    HTML.Tag.BODY, HTML.Tag.UL);  
JButton bulletButton = new JButton(bulletAction);

单击该按钮时,将创建项目符号。如果您在带有项目符号点的行上键入,则再次单击该按钮,将创建2个项目符号点。但是,如果您没有在带有项目符号的行上键入,并单击该按钮,则只会生成1。

为什么会出现这种奇怪的创造故障?

1 个答案:

答案 0 :(得分:0)

部分原因是Swing依赖段落在文档周围进行导航和光标定位。 Swing对HTML的处理有时也是错误的,不管你信不信。除非你覆盖Swing的默认行为,否则你几乎无能为力。

我在here上回答了类似的问题,以防您需要更多细节。另请参阅Stephane在同一页面上的替代实现的答案。希望有所帮助。