2011-07-27 43 views
6

我有一個JTree與自定義關聯MouseListener(用於顯示彈出等)。我需要發射一個MouseEvent,它將被MouseListener抓住。我應該如何以編程方式做到這一點?如何以編程方式使用Java將MouseEvent激發到MouseListener?

+0

你在嘗試,因爲JTree的已經實施了通過鼠標和鍵盤http://download.oracle.com/javase/tutorial/uiswing/events/eventsandcomponents.html調用自己的監聽器 – mKorbel

回答

17

您可以創建自己的MouseEvent並循環遍歷所有偵聽器並進行調用。

例如:

MouseEvent me = new MouseEvent(tree, 0, 0, 0, 100, 100, 1, false); 
for(MouseListener ml: tree.getMouseListeners()){ 
    ml.mousePressed(me); 
} 
+0

+1 - IMO這種方法比仿真本地系統事件更可取。 –

+0

+1優秀的作品!謝謝你解決我的大問題。 –

3

Robot類可能是您正在尋找的。

該類用於生成本地系統輸入事件,用於測試自動化,自運行演示和需要控制鼠標和鍵盤的其他應用程序。 Robot的主要目的是促進Java平臺實現的自動化測試。

相關問題