2017-07-04 152 views
2

我想在我的Kiosk-app(基於Swing)中使用JxBrowser。通過它的性質,沒有外部鼠標和鍵盤可用。但是,如果有人點擊特定網站上的(HTML-)按鈕,我想收到一個活動。JxBrowser - 如何在沒有鼠標事件的Kiosk應用程序中點擊HTML按鈕

最初,我在瀏覽器視圖中使用了鼠標偵聽器來接收這些事件。在我的Mac上(使用外部鼠標),我收到了鼠標事件,但在終端上(沒有外部鼠標),我沒有收到來自瀏覽器視圖的任何鼠標事件。我認爲觸摸事件像鼠標事件一樣處理 - 但不幸的是事實並非如此。

我試過其他事件類型但沒有成功。我還嘗試添加(透明)JButton到瀏覽器視圖。它在瀏覽器視圖頂部全屏顯示,但沒有透明度。

有沒有其他的可能性來接收這樣的事件?

回答

1

一般來說,你需要遵循以下步驟:

  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應用或擴展可以實現相同的行爲,但維護問題和意外行爲較少。

+0

非常感謝你@manicka。它完美地工作,你爲我節省了很多時間。 – ThomasPhilipp

相關問題