java - 关于 ActionPerformed 和 ActionEvent

标签 java swing actionlistener jtextfield actionevent

我还没有完全理解一些java概念,比如监听器和适配器等,我最近正在寻找一种方法,当我在JTextField获得焦点时按下回车键时执行一些代码,我发现了这段代码:

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

这段代码工作正常,但我不知道 JTextField 如何知道我希望在按 Enter 键时执行代码。我猜测 JTextField 已在其代码中定义了它将“应答”的事件(例如按 Enter 键)。希望有人能帮我解答这个疑惑

最佳答案

  • ENTER 键 实现为 JFormattedTextFieldJTextFieldJPasswordField 的 KeyBindings(字段接受)
  • 此通知程序通过调用 ActionListener(通知程序,API 中的方法)生成事件,对于上午的 JComponent,您可以通过添加 ActionListener 来监听此事件
  • 另一个 JComponent 甚至可以通过 ENTER 键 触发两个或多个 AWT/Swing Listener,例如对于来自 ActionListenerItemListener
  • JComboBox
  • 大多数 Swing JComponent 都实现了通用/标准加速器,类似于 MS Windows(MsOffice 等...),这些按键事件被实现为 KeyBindings在 Swing
  • 您可以添加、更改、阻止那些在 API 中实现的事件。或者使用 KeyBindings
  • 添加、定义自己的快捷键
  • 关于使用 KeyBindings 而不是 KeyListener 的良好实践(这里有一堆问答)

关于java - 关于 ActionPerformed 和 ActionEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17912167/

相关文章:

java - 如何在 Hamcrest 中使用(原始的)自动装箱/加宽?

java - GWT 2.6 安装问题

java - 严重 : Context initialization failed org. springframework.beans.factory.BeanCreationException:创建名称为 'sessionFactory' 的 bean 时出错

java - 如何为多个 JMenuItem 创建 ActionListener?

java - 使用以下代码输出错误

java - getActionCommand在代码中不起作用(观看教程系列)

java - 防止 hibernate 刷新只读操作

Java swing 声音播放提前结束

java - 使用 RowFilter (regexFilter) 匹配括号

java - JTextField 输入无法更新 MVC 中 TextView 中的输出