【问题标题】:Java - Why is this bullet point glitchy?Java - 为什么这个要点有问题?
【发布时间】:2012-07-20 13:54:40
【问题描述】:

我有一个 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。

为什么会有这种奇怪的创建故障?

【问题讨论】:

  • 你有没有办法在这两种情况下打印出 JTextPane 后面的源 HTML 并进行比较?我认为InsertHTMLTextAction 可能会插入额外的&lt;/li&gt;&lt;li&gt; 来处理不匹配的标签。
  • 我可以将它保存为 HTML 然后阅读,它就像它出现在 JTextPane 中一样,如果中间有文本,则会创建 2 个
  • 您可能需要向供应商或HTMLEditorKit 提出问题。听起来像是他们库中的错误。
  • 你有没有找到解决办法。我遇到了几乎相同的问题:stackoverflow.com/questions/17522022/…
  • 标签: java swing jtextpane htmleditorkit bulletedlist


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签