java - JxBrowser - 如何在没有鼠标事件的情况下对 Kiosk 应用程序中的 HTML 按钮单击使用react

标签 java swing mouseevent kiosk jxbrowser

我想在我的 Kiosk 应用程序(基于 Swing)中使用 JxBrowser。就其性质而言,没有外部鼠标和键盘可用。但是我想收到一个事件,如果有人在特定网站上单击 (HTML-) 按钮。

最初,我在浏览器 View 中使用鼠标监听器来接收这些事件。在我的 Mac 上(带有外部鼠标)我收到了鼠标事件,但是在我的终端上(没有外部鼠标)我没有从浏览器 View 中收到任何鼠标事件。我认为触摸事件的处理方式与鼠标事件类似 - 但不幸的是,情况并非如此。

我尝试了其他事件类型但没有成功。我还尝试向浏览器 View 添加一个(透明的)JButton。它在浏览器 View 的顶部全屏显示,但没有透明度。

是否还有其他可能接收此类事件?

最佳答案

一般来说,您需要遵循以下步骤:

  1. 等待网页加载 - 监听浏览器加载事件: browser.addLoadListener(new YourLoadAdapter()

  2. 搜索页面上所有可点击的 HTML 元素(链接、按钮等),使用简单的 DOM API 或更复杂的 XPath 表达式:
    List<DOMElement> hyperlinks = document.findElements(By.tagName("a"));

  3. 为它们中的每一个附加一个监听器:
    element.addEventListener(DOMEventType.OnClick, new YourDOMEventListener());

几年前,我将 JxBrowser 用于一个非常相似的应用程序,当时 JxBrowser 是基于 Mozilla 的。基于那次经历,我不太喜欢将外部 Web 浏览器嵌入到 Java 应用程序中。相同的行为可以作为标准 Chrome 应用程序或扩展程序实现,维护问题和意外行为更少。

关于java - JxBrowser - 如何在没有鼠标事件的情况下对 Kiosk 应用程序中的 HTML 按钮单击使用react,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44913974/

相关文章:

java - 从表中的 JPanel 类返回 JTable

java - 我需要什么事件才能知道鼠标移到了 JMenuItem 上?

javascript - 在 ipad 上触发 unhover/mouseout/blur

objective-c - 全局鼠标事件和全屏应用程序

java - 无法弄清楚我的通用 mergeSort、IndexOutBoundException 错误

java - 如何以独特的方式分配变量以求减法中的补数

java - 删除 Android 列表中的最后一项

java - BoxLayout 无法共享错误?

jquery 如何切换鼠标输入或悬停?

java - 如何在android中删除字符串中的第一行和最后一行