2010-09-24 127 views
1

如何創建自定義事件並將其以編程方式發送到 組件?Swing以編程方式發送事件

E.g.如果我有一個JButton並且想創建ActionEventMouseEvent,並且發送它爲 如果用戶按下了它,我會使用哪個代碼?

下面的代碼無法正常工作:

JButton btn = new JButton("Click..."); 

MouseAdapter my = new MouseAdapter() 
{ 
    public void mousePressed(MouseEvent e) 
    { 
     area.setText("Button clicked!!!"); 
    } 
}; 
btn.addMouseListener(my); 

MouseEvent me = new MouseEvent(btn, MouseEvent.BUTTON1, 1, 0, 1, 1, 1, false); 
btn.dispatchEvent(my); 
+0

生成一個事件有點討厭。你確定沒有其他解決方案可以解決你的問題嗎?在JButton的情況下,你可以調用button.getModel()。setPressed(true)。 – 2010-09-24 11:48:09

回答

0

我想你可以調用dispatchEvent法事件作爲參數

1

爲了您的具體的例子,你可以簡單地調用AbstractButton#doClick

如果您需要爲一般情況創建合成事件,請確保填寫真實的AWTEvent將具有的所有字段,因爲事件處理程序可能會將其視爲理所當然。

+0

你可以,請給我一個簡單的,工作的例子嗎? – xdevel2000 2010-09-27 13:48:58

+0

@ xdevel2000:你想要生成什麼特定事件? – 2010-09-27 14:09:02

+0

有關示例,請參閱http://stackoverflow.com/questions/3800840/sending-keypresses-to-jtextfield。 – 2010-09-27 14:50:14