2012-04-13 60 views
1

當嵌入式Java小程序因瀏覽器移動而改變位置時,是否可以獲取事件?從嵌入式Java小程序獲取移動事件

最明顯的方法不起作用:對於任何固定的元素,它的小程序在一個循環

applet.addComponentListener(new ComponentListener() {    
    public void componentMoved(ComponentEvent e) { 
     System.out.println("componentMoved"); 
    } 
    // snip 
}); 
+0

這聽起來很可疑,就像實現任何事情的錯誤方法。順便說一句 - 你究竟在努力實現什麼? – 2012-04-13 08:34:24

+0

@Andrew Thompson:我有一個彈出窗口,我想隨小程序一起移動。 – 2012-04-13 08:39:19

+0

嗯..小程序和彈出窗口通常是一個壞主意,但感謝解釋。在這種情況下,您需要將瀏覽器上的浮動窗口移動**或**頁面滾動。 – 2012-04-13 08:43:56

回答

1

呼叫getLocationOnScreen()。請注意,當包含applet的頁面滾動時也會觸發。

+0

這可能是最好的解決方案。不幸的是,這似乎也有一些怪癖:至少(至少)OS X上的Safari和Firefox getLocationOnScreen()不會更新,直到小程序重新獲得焦點。 – 2012-04-13 10:20:56

+0

這太糟糕了。如果您發佈最佳嘗試的SSCCE,我會看看它。 (我至少可以確認代碼是否可以在Windows/FF上運行。) – 2012-04-13 10:26:17

+0

別擔心。它在Windows上工作正常,但由於沒有很好的通用解決方案,我認爲如果用戶應該移動小程序,我們將只留下任何彈出窗口。 – 2012-04-13 11:17:28