1

通常のテキストとともに、JTextPane に JComponents を挿入できるようにする必要があるプロジェクトに取り組んでいます。現在、私は JTextPane.insertComponent(Component) を使用して JComponents を追加していますが、実際の編成なしで散発的に追加されているようです。カラットのどこにでも挿入されていることがようやくわかったので、テキストの最後に設定してみました。しかし、私が実行すると:

int len = txtConsole.getText().length();
txtConsole.setCaretPosition(len - 1);

場所が無効であるというエラーが表示されます。JTextPane の最後の行の末尾に JComponents を挿入する簡単な、またはより良い方法はありますか?

また、上記が可能である場合、JComponent がテキストの残りの部分とインラインで配置される場所 (中央揃えのインラインなど) を変更する方法はありますか?

4

1 に答える 1

1

次のコードは私にとってはうまくいきます:

int offset = textPane.getDocument().getLength();
textPane.setCaretPosition(offset);
textPane.insertComponent( ... );

コードが EDT で実行されていることを確認します。

さらに問題がある場合は、問題を示すSSCCEを投稿してください。

于 2010-09-19T04:48:02.030 に答える