2012-02-13 13 views
1



•セット:フォントアライメント(左、中央、右、正当化)
•ドキュメントへのテキストの効率的な方法。
テキストを選択または編集する必要はありません。 私はテキストの描画/レンダリングをオーバーライドすることができなければなりません。私が行うことができますクラスを作成しようとしてきた

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 JTextComponentクラスは、効率的に使用することが困難であることを見つける

ホイールを再発明する時間を節約できるライブラリがありますか?
そうでなければ、JDKの実装を拡張するにはどうすればいいですか?ありがとう

+0

_私は車輪を再発明する時間を取っていますか?_簡単です:-)あなたは修正が必要だと思う問題は何ですか? 「効率的」とはどういう意味ですか? – kleopatra

+1

忘れてしまった:単なる設定のための_never_サブクラス – kleopatra

+0

@kleopatraもう少し詳しくお聞かせください。 – rtheunissen

答えて

4

ドキュメントはStyledDocumentインスタンスである必要があります。次に、DocumentインスタンスのsetParagraphAttributes()メソッドを使用します。複数のアペンドのために

は、別の文書(JTextPaneのインスタンスに設定されていませんを使用しています。

新しい空のドキュメントのインスタンスを作成otのキットを使用してください。JTextPaneのにすべて追加し、その後、setDocument(theDocInstance)を呼び出します。

+0

おもしろい音、私はそれを行ってあげるよ。 – rtheunissen

+0

「Font」の設定方法がわかりません。私はそれを見ることができる。ありがとう。 – rtheunissen

+0

以前と同じように属性を持つ文字列を挿入します。 Stringを挿入した後、setParagraphAttributes()メソッドを使用して、挿入されたフラグメントに段落属性を適用します。 – StanislavL

関連する問題