Java 事件绑定(bind)

标签 java swing event-handling

我是使用 Java 进行 Windows 应用程序开发的新手。问题是“如何将事件绑定(bind)到自定义类方法?

正如我所看到的那样,我可以将监听器类注册到 swing 组件以处理事件。没关系,但我必须实现一个实现例如的类ActionListener 接口(interface)处理一个事件,然后实现 actionPerformed 方法。这意味着我必须为每个事件处理一节课?

我不能让一个类“监听”来自所有组件的事件,并让这个类中的每个方法来处理事件吗?”

一个例子:

class MyEventListener { //pseudo code [no constructors, etc]

    public void handleSubmitFormBtn(Event e) {

    }

    //other methods go here handling events from other swing components
}

注意:我不确定方法签名,但我希望你明白这一点。

结论:一种处理从 swing 组件触发的事件的方法..这可能吗?为每个事件创建一个类是唯一的方法吗?我不能将事件处理路由到单个类的特定方法吗?

最佳答案

在 swing 中你通常做的是使用一个匿名类来处理你的事件,像这样:

  someControl.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
          // handle the event
      }
  });

虽然您基本上可以让一个类处理所有事件,并将其注册到所有处理程序,但如上所述,匿名类是处理事件的正确用法。

您可以在@ http://java.sun.com/docs/books/tutorial/uiswing/events/generalrules.html 找到更多信息

关于Java 事件绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/669099/

相关文章:

java - 我如何计算正常值?

java - 在 Java 中的全屏应用程序之上绘图

java - jscrollpane 不适用于 swing 应用程序中的 jtable

java - 将 JFXPanel 添加到 JFrame。为什么它不起作用?

unicode - 如何处理 SDL 中的大写击键?

java - 导入和静态导入的区别?

java - SwingUtilities.InvokeLater 和 ButtonListeners

javascript - 我的元素上的哪个 jQuery 附加事件首先触发?

C#:在不实际单击按钮的情况下调用按钮事件处理程序方法

java - GenericItem 是 Hybris 中每个 Item 的默认父级