【问题标题】:Is there anything similar to AWTListener in JavaFX?JavaFX中是否有类似AWTListener的东西?
【发布时间】:2014-07-02 17:45:27
【问题描述】:

我正在寻找一种方法来捕获 JavaFX 应用程序中的所有事件(特别是键盘/鼠标事件)。 JavaFX中是否有类似AWTListener的东西?在 Java 中,通过创建 AWTListener 并将其添加到默认工具包中,我可以捕获所有事件。

添加一些背景

我参与了 Marathon,这是一个用于 Java/Swing 应用程序的测试自动化工具,目前正在评估添加 JavaFX 支持的复杂程度。按照设计,我无法访问 JavaFX 应用程序本身。对于 Java/Swing,我们使用 javaagent 将 Marathon 钩子加载到 AUT 中,并使用 AWTListener 监听所有事件。我怀疑 JavaFX 应该有类似的可能。

【问题讨论】:

  • 看看ScenicView tool上的事件捕获功能,或许和你想要的差不多。我不知道它是如何工作的,也不知道它的源代码。您可以询问 ScenicView 开发人员。即使 ScenicView 处理它的方式不是您想要的,开发人员也可能知道实现您想要的好方法。
  • 感谢您的信息。看了看风景,并试图与开发商取得联系,但没有成功。 java.net 论坛上的一个帖子提供了一些信息,但这无济于事。目前,我正在考虑在构建节点时使用 java 代理工具添加处理程序。我将在这里发布我的发现。

标签: javafx


【解决方案1】:

不确定您的目标究竟是如何实现的,但我先看看EventDispatcherScene

final EventDispatcher eventDispatcher = scene.getEventDispatcher();
scene.setEventDispatcher( new EventDispatcher()
{
    @Override
    public Event dispatchEvent( final Event event, final EventDispatchChain tail )
    {
        System.out.println( "Dispatching event [" + event + "]." );
        return eventDispatcher.dispatchEvent( event, tail );
    }
} );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-29
    • 2016-10-17
    • 1970-01-01
    • 1970-01-01
    • 2022-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多