1

我将如何继续在 JTextPane 中创建水平线元素?只是一个可能由 View.paint(Graphics) 绘制的矩形,它覆盖了 JTextPane 的整个宽度,并且具有任意高度。我还需要能够动态删除这些元素。

我试图通过创建一个自定义编辑器工具包来解决这个问题,该工具包有一个自定义视图工厂,它为线元素返回一个“Horizo​​ntalLineView”......但我必须承认这一切都让我有点过头了!例如,如何为此 Horizo​​ntalLineView 创建元素?到目前为止,我只使用了 insertString() ......而且我在任何地方都没有看到“addElement”方法......任何指向正确方向的指针都会很棒。

我会偷偷问另一个问题:谁能推荐一本深入介绍 JEditorPane/JTextPane 的好书?

4

2 回答 2

5

或者当您需要“样式化 hr”时,您需要使用 div。

JEdi​​torPane 仅支持 HTML 2.1,html 2.1 中 hr 的属性是 noshade 和 size(不是样式)。

因此,对于更花哨的外观或 1px 大小的 hr,请使用此...

<div style=\"height: 1px; font-size:0; background:blue;\"></div>

或者

<div style='height: 1px; font-size:0; background:blue;'></div>

其中背景是 hr 颜色,高度是 hr 大小。font-size:0 属性很重要,否则 JEditor 窗格默认使用文本换行,这将覆盖 height 属性。

于 2013-04-23T09:23:57.870 回答
4

如果 HTML 内容是可接受的,您可以执行以下操作:

JTextPane textPane = new JTextPane();
textPane.setContentType("text/html");
textPane.setText("<html>Some Text Above The Line<hr size=5>Some Text Below</html>");
于 2012-10-08T18:18:03.250 回答