java - 在 Java 中处理事件 : does it require empty event handlers

标签 java event-handling

我放弃了 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/

相关文章:

C#为所有对象订阅相同的事件处理程序是否线程安全

jquery - 在动态创建的元素上自动调用 jQuery 插件

java - MediaPlayer 在开始另一个 Activity 时停止

如果数据已经可用,则不会触发 Java 选择器 OP_READ

c++ - Qt : get mouse pressed event even if a button is pressed

使用自定义附加数据创建 JavaScript 事件

javascript - 如何设置首先触发的事件?

Java 泛型和模板

java - 从 PHP 发送到另一个 (Java) Web 服务并检索(图像)结果

java - 将按钮添加到 jtable