• category: swing folder: SurrendersFocusOnKeystroke title: JTableのセルを編集開始したときにセルエディタがフォーカスを取得するよう設定する tags: [JTable, CellEditor, Focus] author: aterai pubdate: 2015-06-15T00:00:18+09:00 description: JTableのセルを編集開始したときに、セルエディタがフォーカスを取得するかどうかを設定で切り替えます。 image: https://lh3.googleusercontent.com/-Kzqx4xhc2CM/VX2WWWF2AYI/AAAAAAAAN6o/MQEBYdlaDP4/s800/SurrendersFocusOnKeystroke.png

概要

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

サンプルコード

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

解説

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

参考リンク

コメント