当前位置: 首页 > 知识库问答 >
问题:

如何在JavaFX中处理一个类中的多个事件类型?

韦嘉颖
2023-03-14

在JavaFX中,是否可以从一个类中处理多个事件类型(例如ActionEvent、MouseEvent等),而无需匿名事件处理程序?我尝试了以下操作,但这只是产生了一个编译时错误。

public class GUI extends Application implements EventHandler<ActionEvent>,
                                                EventHandler<MouseEvent>

共有1个答案

锺星腾
2023-03-14

是的,但不是以你期望的方式。

据我所知,即使使用不同的类型,您也无法两次实现相同的接口。

EventHandler

这样。。。

class CustomEventHandler implements EventHandler<Event>{

    public void handleActionEvent(ActionEvent ke){
        //handle event
    }

    public void handleMouseEvent(MouseEvent me){
        //handle event
    }

    @Override
    public void handle(Event event) {
        //handle event testing
    }

}

然后您只需测试事件是鼠标类型还是操作类型,然后从该函数处理事件。

 类似资料:
  • 每个人 都。我一直在寻找这个问题,但我在这里没有找到它,所以我想它真的很简单。 我正在用JavaFX创建一个非常简单的应用程序,只需一个按钮。现在我想处理它的事件(如按下或释放),但当我在互联网上看到示例时,它们都使用匿名类(每个事件都有一个不同的类),这在我看来让代码变得肮脏。这就是为什么我想将事件处理程序放在一个单独的类中,并将它们添加到按钮中。 问题是我不知道我是否必须为每个事件创建一个不同

  • 但我得到了NullPointerException任何人都可以帮忙

  • 我计划创建一个单独的EventHandler类,它将为我的JavaFX类中的所有控件处理所有类型的事件。 例如,我添加了我的自定义事件处理程序类,以如下方式处理动作事件,它工作得很好: 以下是我的自定义事件处理程序类代码: 但是当我尝试将addEventHandler之一更改为MouseEvent并按以下方式修改主EventHandler类时,它会显示错误“Interface eventhandl

  • 我在视图布局中使用了三个EditText小部件,用于三个不同的过滤器。如果我输入其中一条,另一条文本不应该是空白的吗? 下面是我的片段: GenericTextWatcher方法: 当我运行这个程序并输入EditText时,logcat看起来是这样的: 03-03 15:25:39.616 25952-25952/com.xyz.abcI/art:显式并发标记扫描GC释放23671(1194KB)

  • 问题内容: 我正在开发一个本机android应用程序,其中尝试使用2个开源库。问题是两个库都在各自的库中使用应用程序类。他们正在使用application标签下的“ android:name”在清单文件的相应源代码中注册这些类。问题是如何处理这种情况,因为众所周知,清单文件中只能使用ONE标签。我们是否可以在代码中注册/实例化应用程序类,以便我们在标记中仅提及一个库,而在代码中/实用地提及第二个库

  • 我有一个关于JFrames和正确处理它们的快速问题。我有一个有多个关卡的游戏,我希望在使用新关卡创建另一个关卡时处理使用中的框架。 我目前正在开发的程序扩展了一个JFrame,这一直让我感到困惑,因为我不知道那个JFrame叫什么。 无论如何,我有另一个扩展JPanel的类。在这个类中,我有一个方法,当游戏状态完成时,删除所有实例并关闭JFrame。然而这不起作用,因为我无法获取框架的框架,相反,