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

时间:2012-03-26 20:24:56

标签: java swing jbutton

是否可以模拟按钮上的点击,类似于doClick(),但只是图形模拟它,而不是生成任何ActionEvent。如果知道我可以扩展类,请使用简单的if语句执行自己的doClick。但是还有其他可能吗?

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

4 个答案:

答案 0 :(得分:1)

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

或者你可以扩展/实现ButtonModel,并搞乱setPressed / isPressed状态?

答案 1 :(得分:1)

  

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

我没有办法区分这两者;该模型对谁调用其方法一无所知。相反,您可以保存所有侦听器,调用doClick()并恢复侦听器。看起来您必须检查操作,更改和项目侦听器。

答案 2 :(得分:0)

如果您想点击按钮,请尝试:

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

但是,当用户不应该点击它时,您可能更愿意禁用该按钮

Button.setEnabled(false);

答案 3 :(得分:0)

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