我搜索了很多有关事件处理的事情,并最终变得更加困惑。我的问题很简单:
Handler hand = new Handler();
aButton.addActionListener(hand);
private class Handler implements ActionListener{
public void actionPerformed(ActionEvent ae)
{
//event handling code
}
}
在这里,该按钮已经注册了动作侦听器,并且已将 hand 传递给ActionPerformed(?), Hand 如何到达Action Perverperformed功能函数名称不一样?为什么甚至需要发送手?当接口内的方法中没有代码时,为什么我们甚至需要实现界面?谢谢
在这里,按钮已自行注册了动作侦听器,并且已经将手传递给了Action Performed(?)
不,hand
是对Handler
实例的引用。Handler
是实现ActionListener
接口的类。
aButton.addActionListener(hand)
注册Handler
实例引用hand
作为单击按钮时要调用的操作侦听器。
单击按钮时,将执行Handler
实例的actionPerformed
方法。
当接口中的方法不包含代码时,为什么我们甚至需要实现接口?
这只是一个例子。您应该在actionPerformed
中添加代码(替换//event handling code
注释)。否则就不需要注册该Handler
实例,因为它什么都不做。