JTableのセルを編集開始したときにセルエディタがフォーカスを取得するよう設定する
Total: 6430
, Today: 2
, Yesterday: 1
Posted by aterai at
Last-modified:
概要
JTable
のセルを編集開始したときにセルエディタがフォーカスを取得するかどうかを設定で切り替えます。
Screenshot
Advertisement
サンプルコード
解説
table.setSurrendersFocusOnKeystroke(false);
JTable
のデフォルト- キー入力でセル編集を開始した場合フォーカスは
JTable
に残る- このためキー入力でセル編集を開始した直後にCtrl+Aを入力すると
JTable
の行が全選択される
- このためキー入力でセル編集を開始した直後にCtrl+Aを入力すると
- マウスクリックでセル編集を開始した場合はこの
JTable#setSurrendersFocusOnKeystroke(...)
の指定に依存せず、フォーカスはセルエディタに移動する
table.setSurrendersFocusOnKeystroke(true);
- キー入力でセル編集を開始した場合フォーカスはセルエディタ(
JTextField
)に移動する- このためキー入力でセル編集を開始した直後にCtrl+Aを入力するとセルエディタ内の文字列が全選択される
Java 11
以降ではJTable#putClientProperty("JTable.forceAutoStartsEdit", true);
を指定した場合も同様の動作になる
- キー入力でセル編集を開始した場合フォーカスはセルエディタ(