JTextPane和水平线

时间:2012-10-08 18:06:30

标签: java swing jtextpane

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

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

我会偷偷回答另一个问题:任何人都可以推荐一本涵盖JEditorPane / JTextPane的好书吗?

2 个答案:

答案 0 :(得分: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>");

答案 1 :(得分:2)

或者当你需要“样式化的hr”时,你需要解决div。

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

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

<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属性。