JButton .doClick()没有做任何事情?
问题描述:
是否可以模拟点击按钮,类似于doClick(),但只是图形模拟它,不会产生任何ActionEvent的。如果知道我可以扩展课程,请用简单的if语句做我自己的doClick。但它有其他可能吗?JButton .doClick()没有做任何事情?
我想要这个,因为我有一个按钮,用户可以按下,但有时计算机(它在游戏中)“按下”按钮。所有的逻辑都是在另一个线程中完成的,我只是想为用户显示它。
答
如果您深入了解您使用的外观和感觉的细节,您可能会看到它如何检测并将按钮绘制在“向下”状态,然后模拟该按钮?
或者你可以扩展/实现ButtonModel和混乱的setPressed/isPressed状态?
答
如果你想点击按钮试试这个:
try
{
robot = new Robot();
robot.mouseMove(0,500);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
}catch(Exception e){}
但也许你会喜欢简单地禁用按钮,当用户不应该点击
Button.setEnabled(false);
答
您可以设置是否启用,所以使用“buttonName.setEnabled(false);”
答
我认为最简单的解决方案是检查
ActionListener
中的模型。
我没有看到区分两者的方法;该模型对于谁调用它的方法而言是无知的。相反,您可以保存所有侦听器,调用doClick()
,并还原侦听器。它看起来像你将不得不检查行动,更改和项目监听器。
我认为最简单的解决方案是检查actionlistener中的模型,检测它是手动印刷机还是电脑印刷机。但即时通讯仍然有趣,如果有任何解决方案只是点击按钮上的按钮。 – joxxe 2012-03-26 20:44:33