0

我还没有完全理解一些 Java 概念,比如 Listeners 和 Adapters 等,我最近正在寻找一种在 JTextField 具有焦点时按 Enter 键执行一些代码的方法,我发现了这段代码:

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

此代码工作正常,但我不知道 JTextField 如何知道我希望在按 Enter 键时执行代码。我猜 JTextField 已经在其代码中定义了它会“回答”的事件(如 Enter press)。我希望有人可以帮助我澄清这个疑问

4

2 回答 2

2
  • ENTER key被实现为KeyBindings(field accept) for JFormattedTextField, JTextField,JPasswordField
  • 此通知程序通过调用 ActionListener(通知程序,API 中的方法)生成一个事件,因为JComponent您可以通过添加来监听此事件ActionListener
  • 另一个JComponents 甚至可以触发 fromENTER key到两个或更多AWT/Swing Listeners,例如 for JComboBoxfromActionListenerItemListener
  • 大多数 SwingJComponent已经实现了通用/标准加速器,类似于 MS Windows(MsOffice 等),那些关键事件KeyBindings在 Swing中实现
  • 您可以添加、更改、阻止那些在 API 中实现的事件。或添加,使用定义自己的快捷键 KeyBindings
  • 它是关于使用的良好实践KeyBindings而不是KeyListener(这里有一堆问答)
于 2013-07-28T20:15:46.257 回答
0

在 Java 中,GUI 监听(称为监听器)来自用户的操作。有很多侦听器可用于特定的 GUI。例如,对于 Textfield 侦听动作事件。ActionEvent 触发一个监听该事件的 GUI,所以每当你点击一个聚焦的 GUI 时,它都会响应。

于 2013-07-28T20:39:39.633 回答