Swing/SurrendersFocusOnKeystroke のバックアップの現在との差分(No.3)
- category: swing folder: SurrendersFocusOnKeystroke title: JTableのセルを編集開始したときにセルエディタがフォーカスを取得するよう設定する tags: [JTable, CellEditor, Focus] author: aterai pubdate: 2015-06-15T00:00:18+09:00 description: JTableのセルを編集開始したときに、セルエディタがフォーカスを取得するかどうかを設定で切り替えます。 description: JTableのセルを編集開始したときにセルエディタがフォーカスを取得するかどうかを設定で切り替えます。 image:
概要
JTable
のセルを編集開始したときに、セルエディタがフォーカスを取得するかどうかを設定で切り替えます。
概要
JTable
のセルを編集開始したときにセルエディタがフォーカスを取得するかどうかを設定で切り替えます。
Screenshot
Advertisement
サンプルコード
サンプルコード
解説
解説
table.setSurrendersFocusOnKeystroke(false);
- デフォルト
- マウスクリックでセル編集を開始した場合は、
JTable#setSurrendersFocusOnKeystroke(...)
の指定に依存せず、フォーカスはセルエディタに移動する - キー入力でセル編集を開始した場合、フォーカスは
JTable
に残る- このため、キー入力でセル編集を開始した直後にC-aを入力すると
JTable
の行が全選択される
- このため、キー入力でセル編集を開始した直後にC-aを入力すると
-
JTable
のデフォルト - キー入力でセル編集を開始した場合フォーカスは
JTable
に残る- このためキー入力でセル編集を開始した直後にCtrl+Aを入力すると
JTable
の行が全選択される
- このためキー入力でセル編集を開始した直後にCtrl+Aを入力すると
- マウスクリックでセル編集を開始した場合はこの
JTable#setSurrendersFocusOnKeystroke(...)
の指定に依存せず、フォーカスはセルエディタに移動する
table.setSurrendersFocusOnKeystroke(true);
- キー入力でセル編集を開始した場合、フォーカスはセルエディタ(
JTextField
)に移動する- このため、キー入力でセル編集を開始した直後にC-aを入力するとセルエディタ内の文字列が全選択される
- キー入力でセル編集を開始した場合フォーカスはセルエディタ(
JTextField
)に移動する- このためキー入力でセル編集を開始した直後にCtrl+Aを入力するとセルエディタ内の文字列が全選択される
-
Java 11
以降ではJTable#putClientProperty("JTable.forceAutoStartsEdit", true);
を指定した場合も同様の動作になる
- キー入力でセル編集を開始した場合、フォーカスはセルエディタ(