Rom*_*man 4 java actionlistener
我刚开始学习如何使用动作监听器.根据我的理解,它的工作方式如下:
有些类默认包含"addActionListener"方法(例如按钮类).
使用此方法,我们向对象添加一个动作侦听器.例如:listenedObject.addActionListener(listeningObject).
当执行具有"listenedObject"的动作时,将调用"listenObject"的"actionPerformed"方法.所以,这意味着当我们为listenObject编写一个类时,我们需要放置"actionPerformed"方法.
我不清楚,我们是否应该为每个想要听的对象创建一个新类.在我看来,这不是一个优雅的解决方案.另一方面,如果我们有一个动作监听器类用于所有(或至少很多)对象,那么我们遇到问题,因为这个类的实例不知道哪个对象正在调用"actionPerformed"方法(我们需要知道,因为actionPerformed执行的操作因此方法的调用方式而异.
在我看来,对于我们需要创建的每个被监听对象都是"个人"动作监听器,我们可以通过将特定值设置为动作监听器的相应字段来实现.但我不确定这是一个标准的方法吗?人们通常如何做到这一点?
处理这种情况的最常见方式 - 从我自己的个人经验来看 - 就是简单地创建一个匿名的内联类.像这样:
listenedObject.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
// Your action handling code in here
}
});
Run Code Online (Sandbox Code Playgroud)
而且我经常看到人们调用包含listenedObject的对象的方法.例如,在具有按钮的Dialog中:
myOkayButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
okayButtonPressed();
}
});
Run Code Online (Sandbox Code Playgroud)
然后在对话框类中:
private void okayButtonPressed() {
// Do what we need to do
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8724 次 |
| 最近记录: |