2012-10-08 1 views
1

Как бы я начал создавать горизонтальный элемент линии в JTextPane? Просто прямоугольник, нарисованный, вероятно, View.paint (Graphics), который покрывает всю ширину JTextPane и имеет произвольную высоту. Я также должен иметь возможность динамически удалять эти элементы.JTextPane и горизонтальные линии

Я пытаюсь подойти к этому путем создания специального набора редакторов, который имеет настраиваемую фабрику представлений, которая возвращает «HorizontalLineView» для элементов строки ... но я должен признать, что все это немного над моей головой ! Как я могу создать элемент для этого HorizontalLineView? Я только использовал 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-тег. – n00bster

2

Или, когда вам нужно «стилизованная час» Вы должны работать вокруг с делами.

JEditorPane поддерживает только HTML 2.1 и атрибуты hr в html 2.1 - это noshade и size (not style).

так для более фантазии ищут или размер использования 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.