Как создать простой класс Paragraph - PullRequest
1 голос
/ 13 февраля 2012

Я пытался создать класс, который может делать следующее:

• Набор: Шрифт , Выравнивание (слева, по центру, справа, по правому краю)
• Эффективный способ append текста к документу.
Текст не должен быть выбираемым или редактируемым. Я должен иметь возможность переопределить рисование / рендеринг текста.

Я считаю, что классы JDK JTextComponent сложно использовать эффективно, поскольку это то, что я имею до сих пор, но это далеко от того, чего я пытаюсь достичь:

public class Paragraph extends JTextPane{

    public Paragraph(){
        this.setFont(Fonts.PARAGRAPH);
        this.setOpaque(false);
    }

   // ridiculously slow
   public void append(String s) {
     SimpleAttributeSet def = new SimpleAttributeSet();
     StyleConstants.setForeground(def, Colors.PARAGRAPH);
     Document d = getDocument();
     try {
       d.insertString(d.getLength(), s, def);
     } catch (BadLocationException ble) {
   }
 }  
}



Вопрос: Существуют ли какие-либо библиотеки, которые могли бы сэкономить мне время на повторное изобретение колеса?
Если нет, то как мне расширить возможности реализации JDK? Спасибо

1 Ответ

4 голосов
/ 13 февраля 2012

Ваш документ должен быть экземпляром StyledDocument.Затем просто используйте метод setParagraphAttributes () экземпляра Document.

Для многократного добавления используйте отдельный документ (не заданный для экземпляра JTextPane.

Используйте комплект для создания нового пустого экземпляра Document.Вызовите все свои добавления и затем установитеDocment (theDocInstance) в JTextPane.

...