Swing/CaretPosition のバックアップ(No.6)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/CaretPosition へ行く。
- 1 (2005-08-01 (月) 02:22:59)
- 2 (2005-08-01 (月) 02:29:18)
- 3 (2005-10-13 (木) 16:09:46)
- 4 (2006-02-13 (月) 16:42:25)
- 5 (2006-02-27 (月) 15:30:34)
- 6 (2006-02-27 (月) 16:51:05)
- 7 (2006-04-12 (水) 19:35:27)
- 8 (2007-03-02 (金) 16:16:07)
- 9 (2007-08-04 (土) 15:05:48)
- 10 (2009-11-06 (金) 18:29:44)
- 11 (2013-03-27 (水) 16:42:08)
- 12 (2013-07-31 (水) 23:36:19)
- 13 (2013-09-08 (日) 02:32:50)
- 14 (2014-11-25 (火) 03:03:31)
- 15 (2014-12-28 (日) 15:27:22)
- 16 (2015-03-13 (金) 13:08:39)
- 17 (2017-02-09 (木) 15:27:01)
- 18 (2017-04-07 (金) 13:51:51)
- 19 (2017-12-24 (日) 15:14:29)
- 20 (2019-08-30 (金) 18:04:33)
- 21 (2021-04-22 (木) 21:54:03)
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; }