• title: JTableのセルを編集開始したときにセルエディタがフォーカスを取得するよう設定する tags: [JTable, CellEditor, Focus] author: aterai pubdate: 2015-06-15T00:00:18+09:00 description: JTableのセルを編集開始したときに、セルエディタがフォーカスを取得するかどうかを設定で切り替えます。

概要

JTableのセルを編集開始したときに、セルエディタがフォーカスを取得するかどうかを設定で切り替えます。

サンプルコード

table.setSurrendersFocusOnKeystroke(true);
View in GitHub: Java, Kotlin

解説

  • table.setSurrendersFocusOnKeystroke(false);
    • デフォルト
    • マウスクリックでセル編集を開始した場合は、JTable#setSurrendersFocusOnKeystroke(...)の指定に依存せず、フォーカスはセルエディタに移動する
    • キー入力でセル編集を開始した場合、フォーカスはJTableに残る
      • このため、キー入力でセル編集を開始した直後にC-aを入力するとJTableの行が全選択される
  • table.setSurrendersFocusOnKeystroke(true);
    • キー入力でセル編集を開始した場合、フォーカスはセルエディタ(JTextField)に移動する
      • このため、キー入力でセル編集を開始した直後にC-aを入力するとセルエディタ内の文字列が全選択される

参考リンク

コメント