我放弃了 GUI Builders for Java,现在我完全用代码开发它们(不是很难,只需几个小时的练习)。现在我正在处理事件处理。
但是我发现当我尝试使用一个类来实现一种类型的监听器时,例如
private class TextAction implements FocusListener
{
public void focusGained(FocusEvent e)
{
responseTxt.setText("Got focus");
}
public void focusLost(FocusEvent e)
{
}
我必须为 focusLost 提供一个空的操作处理程序(如上所述),即使我不需要它,或者我从编辑器那里得到一个 nastygram 说这不是一个抽象类并且不会覆盖 FocusLost 方法等.
这是否意味着 Action 处理程序必须为与监听器关联的每个事件类型显示一个 Action 处理程序,即使该 Action 不会在程序中使用?
感谢您对此的任何帮助。
最佳答案
JDK 中已经有所有标准 Listener 接口(interface)的基类。这些类实现了接口(interface)的所有方法,但在方法体中什么也不做。您只需将接口(interface)名称从 XyzListener 更改为 XyzAdapter 即可获得它们。
使用这些适配器,您只需重写您真正需要的方法:
private class TextAction extends FocusAdapter
{
@Override
public void focusGained(FocusEvent e)
{
responseTxt.setText("Got focus");
}
}
关于java - 在 Java 中处理事件 : does it require empty event handlers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2106650/