• category: swing folder: TextFieldActionListener title: JTextFieldにActionListenerを追加する tags: [JTextField, ActionListener, JRootPane, DocumentListener] author: aterai pubdate: 2017-06-19T14:42:19+09:00 description: JTextFieldにActionListenerを追加して、Enterキーの入力を取得します。 image: https://drive.google.com/uc?id=1JdoY_yKanCFgfCAle83WU8bgTJ7L4E4Cbg

概要

JTextFieldActionListenerを追加して、Enterキーの入力を取得します。

サンプルコード

JTextField textField2 = new JTextField("addActionListener");
textField2.addActionListener(e -> append(((JTextField) e.getSource()).getText()));
View in GitHub: Java, Kotlin

解説

上記のサンプルでは、JTextFieldActionListenerなどを追加して、Enterキーを入力した場合の動作をテストしています。

  • 上:
    • デフォルトのJTextField
    • 自身にフォーカスがあり、かつ親のJRootPaneDefaultButtonが設定されている場合、Enterキー入力でDefaultButtonがクリックされる
  • 中:
    • JTextFieldのドキュメントにDocumentListenerを追加
    • DocumentListenerは、Enterキーの入力には反応しない
    • 自身にフォーカスがあり、かつ親のJRootPaneDefaultButtonが設定されている場合、Enterキー入力でDefaultButtonがクリックされる
  • 下:
    • JTextFieldActionListenerを追加
    • 親のJRootPaneDefaultButtonが設定されているかどうかに関わらず、Enterキー入力で自身に追加されたActionListenerが実行される
    • このActionListenerはマウスクリックには反応しない

参考リンク

コメント