Events Swing以编程方式发送事件

Events Swing以编程方式发送事件,events,swing,Events,Swing,如何创建自定义事件并以编程方式将其发送到 组件 例如,如果我有一个JButton并想创建一个ActionEvent或MouseEvent,然后将其作为 如果用户按下了按钮,我会使用哪种代码 以下代码无效: JButton btn = new JButton("Click..."); MouseAdapter my = new MouseAdapter() { public void mousePressed(MouseEvent e) { area.setText("B

如何创建自定义事件并以编程方式将其发送到 组件

例如,如果我有一个
JButton
并想创建一个
ActionEvent
MouseEvent
,然后将其作为 如果用户按下了按钮,我会使用哪种代码

以下代码无效:

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);

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

对于您的特定示例,您只需调用
AbstractButton#doClick


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

生成事件有点麻烦。你确定没有其他解决方案可以解决你的问题吗?对于JButton,您可以调用button.getModel().setPressed(true)。@xdevel2000:您希望生成什么特定事件?请参阅示例。好的,我知道我必须在希望发送事件的组件上使用dispatchEvent。我试图在JButton上使用它,但它不起作用……看看我在修改后的问题中发布的示例。怎么了?除了明显的打字错误(
btn.dispatchEvent(me)
而不是
my
),您的代码对我很有用。