Java JButton.doClick()不做任何操作?

Java JButton.doClick()不做任何操作?,java,swing,jbutton,Java,Swing,Jbutton,是否可以模拟单击按钮,类似于doClick(),但只是图形模拟,而不是生成任何ActionEvent。如果你知道我可以扩展这个类,用一个简单的If语句来做我自己的doClick。但还有其他可能性吗 我想这样做是因为我有一个用户可以按下的按钮,但有时电脑(在游戏中)“按下”按钮。所有逻辑都在另一个线程中完成,我只想为用户显示它。如果您想单击按钮,请尝试以下操作: try { robot = new Robot(); robot.mou

是否可以模拟单击按钮,类似于doClick(),但只是图形模拟,而不是生成任何ActionEvent。如果你知道我可以扩展这个类,用一个简单的If语句来做我自己的doClick。但还有其他可能性吗


我想这样做是因为我有一个用户可以按下的按钮,但有时电脑(在游戏中)“按下”按钮。所有逻辑都在另一个线程中完成,我只想为用户显示它。

如果您想单击按钮,请尝试以下操作:

try
        {
            robot = new Robot();
            robot.mouseMove(0,500);
            robot.mousePress(InputEvent.BUTTON1_MASK);
            robot.mouseRelease(InputEvent.BUTTON1_MASK);
        }catch(Exception e){}
但是,当用户不应该单击按钮时,您可能更愿意简单地禁用该按钮


按钮。设置启用(false)

如果您深入了解正在使用的外观中的细节,您可能会看到它是如何检测和绘制处于“关闭”状态的按钮的,然后进行模拟


或者您可以扩展/实现ButtonModel,并处理setPressed/isPressed状态?

您可以设置是否启用它,因此使用“buttonName.setEnabled(false)”


我认为最简单的解决方案就是在
ActionListener
中检查模型


我看不到区分这两者的方法;模型不知道是谁调用它的方法。相反,您可以保存所有侦听器,调用
doClick()
,然后还原侦听器。看起来您必须检查操作、更改和项目侦听器。

问题是我希望它看起来像一个单击,图形化。我认为最简单的解决方案是在actionlistener中检查模型,检测是手动按下还是计算机按下。但是,如果有任何解决方案可以通过图形方式“点击”按钮,我仍然很感兴趣。