0

リスナーやアダプターなどの Java の概念をまだ完全には理解していません。最近、JTextField にフォーカスがあるときに Enter キーを押したときにコードを実行する方法を探していたところ、次のコードが見つかりました。

JTextField.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        System.out.println("Enter pressed");
    }
}
);

このコードは正常に動作しますが、Enter キーを押したときにコードを実行する必要があることを JTextField がどのように認識しているのかわかりません。JTextField は、「応答」するイベント (Enter キーを押すなど) のコードで定義されていると思います。誰かがこの疑問を明確にするのを手伝ってくれることを願っています

4

2 に答える 2

2
  • ENTER key、、KeyBindingsの (フィールド受け入れ)として実装されます。JFormattedTextFieldJTextFieldJPasswordField
  • この通知機能は、ActionListener (通知機能、API のメソッド) を呼び出してイベントを生成しましたJComponentActionListener
  • JComponentfromと_ ENTER key_ AWT/Swing Listeners_ JComboBox_ActionListenerItemListener
  • ほとんどの SwingJComponentは、MS Windows (MsOffice など) と同様に共通/標準のアクセラレータを実装しており、これらの主要なイベントはKeyBindingsSwingのように実装されています。
  • API に実装されたイベントを追加、変更、ブロックできます。または、使用して独自のキーショートカットを追加、定義します KeyBindings
  • KeyBindings代わりに使用する良い習慣についてですKeyListener(ここにたくさんのQ&Aがあります)
于 2013-07-28T20:15:46.257 に答える