TITLE:JTextPaneで最終行に移動

JTextPaneで最終行に移動

編集者:Terai Atsuhiro
作成日:2005-08-01
更新日:2021-04-22 (木) 21:54:03

概要

CaretPositionを指定してJTextPaneの最終行に移動します。

#screenshot

サンプルコード

 Document doc = jtp.getDocument();
 try{
   doc.insertString(doc.getLength(), str+"\n", null);
   jtp.setCaretPosition(doc.getLength());
 }catch(BadLocationException e) {}
  • &jnlp;
  • &jar;
  • &zip;

解説

上記のサンプルでは、Documentに文字列と改行*1を追加した後、そのDocumentの一番最後にJTextComponent#setCaretPosition(int)メソッドでキャレットを移動しています。

Documentの最後ではなく、現在のキャレットの位置から、その行番号を取得したい場合は、以下のようにします。

 public static int getLineAtCaret(JTextComponent component) {
   int caretPosition = component.getCaretPosition();
   Element root = component.getDocument().getDefaultRootElement();
   return root.getElementIndex(caretPosition)+1;
 }

参考リンク

コメント