我是使用 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/