2012-10-08 98 views
1

我將如何繼續在JTextPane中創建水平線元素?只是一個可能由View.paint(Graphics)繪製的矩形,它覆蓋了JTextPane的整個寬度,並且具有任意的高度。我還需要能夠動態刪除這些元素。JTextPane和水平線

我試圖通過創建一個自定義編輯器工具包,其中有一個自定義視圖工廠,它返回一個「Horizo​​ntalLineView」的線元素......但我必須承認,這一切都有點凌駕於我的頭上!例如,我如何爲這個Horizo​​ntalLineView創建元素?我只使用了insertString()到目前爲止......並且我沒有在任何地方看到「addElement」方法......任何指向正確方向的指針都會很棒。

我會潛入另一個問題:任何人都可以推薦一本深入討論JEditorPane/JTextPane的好書嗎?

+3

是HTML造型的選項?例如


標籤? – Randy

回答

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>"); 
+0

,你可以使用例如


高度 – Rempelos

+0

好點,更新:) – Reimeus

+1

是的,HTML提供了一個不錯的和簡單的解決方案。沒有必要亂用ViewFactories :)我得到它與一個div而不是hr工作;由於某種原因,JTextPane不想爲hr-tag着色。 – n00bster

2

或者當你需要「病急亂投醫小時」,你需要解決與股利。

JEditorPane僅支持HTML 2.1,而HTML 2.1中的hr屬性是noshade和大小(不是樣式)。

所以更看中尋找或1px的大小小時使用此...

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

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

其中的背景是人力資源的顏色和高度小時尺寸。 font-size:0屬性很重要,否則JEditor窗格默認使用文本換行,這將覆蓋height屬性。