Juz*_*ing 1 java api events swing event-handling
好吧,据我所知,事件对象作为参数传递给Java中的事件处理函数,保存有关事件的其他信息.因此,这意味着在我们需要之前传递该参数有时可能并不重要.
但是,情况并非如此......因为如果缺少对象参数,它会抛出错误.例如,这会引发错误..
public void actionPerformed() { //since the event object parameter is missing
button.setText("Clicked");
}
Run Code Online (Sandbox Code Playgroud)
为什么会这样?传递参数有时是浪费,为什么Swing/AWT Java API中没有允许事件处理程序完全不包含参数的方法呢?这真的很舒服.没有?
是的,重要的是,参数构成了界面所述的合同的一部分.
一个interface描述了预期实现的.
public interface ActionListener {
public void actionPerformed(ActionEvent evt);
}
Run Code Online (Sandbox Code Playgroud)
为了使类能够调用任何实现ActionListener,它不仅必须提供方法的名称,还要提供它(interface列出)列出的任何参数.
public void actionPerformed() {
button.setText("Clicked");
}
Run Code Online (Sandbox Code Playgroud)
不符合合同要求,ActionListener因此不能称之为.实际上,假设您是类implements ActionListener,除非您提供表单方法signature(public void actionPerformed(ActionEvent evt))的实现,否则不会编译.
如果您不想使用该evt对象,请忽略它.
| 归档时间: |
|
| 查看次数: |
997 次 |
| 最近记录: |