JButton .doClick()没有做任何事情?

问题描述:

是否可以模拟点击按钮,类似于doClick(),但只是图形模拟它,不会产生任何ActionEvent的。如果知道我可以扩展课程,请用简单的if语句做我自己的doClick。但它有其他可能吗?JButton .doClick()没有做任何事情?

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

如果您深入了解您使用的外观和感觉的细节,您可能会看到它如何检测并将按钮绘制在“向下”状态,然后模拟该按钮?

或者你可以扩展/实现ButtonModel和混乱的setPressed/isPressed状态?

+0

我认为最简单的解决方案是检查actionlistener中的模型,检测它是手动印刷机还是电脑印刷机。但即时通讯仍然有趣,如果有任何解决方案只是点击按钮上的按钮。 – joxxe 2012-03-26 20:44:33

如果你想点击按钮试试这个:

try 
     { 
      robot = new Robot(); 
      robot.mouseMove(0,500); 
      robot.mousePress(InputEvent.BUTTON1_MASK); 
      robot.mouseRelease(InputEvent.BUTTON1_MASK); 
     }catch(Exception e){} 

但也许你会喜欢简单地禁用按钮,当用户不应该点击

Button.setEnabled(false);

+0

问题是,我希望它看起来像点击,graphicaly。但不要产生任何行为(或者可能是某种其他行为,我可以在听众中“扔掉”)。 – joxxe 2012-03-26 20:36:00

+0

你的问题不清楚,你在找什么? – exomic 2012-03-26 20:51:50

您可以设置是否启用,所以使用“buttonName.setEnabled(false);”

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

我没有看到区分两者的方法;该模型对于谁调用它的方法而言是无知的。相反,您可以保存所有侦听器,调用doClick(),并还原侦听器。它看起来像你将不得不检查行动,更改和项目监听器。