Swing以编程方式发送事件

时间:2010-09-24 08:34:32

标签: events 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);

2 个答案:

答案 0 :(得分:1)

对于您的具体示例,您只需致电AbstractButton#doClick

如果您需要为一般情况创建合成事件,请确保填写真实AWTEvent所具有的所有字段,因为事件处理程序可能认为它们是理所当然的。

答案 1 :(得分:0)

我认为您可以使用Event作为参数调用dispatchEvent方法