以编程方式单击 Java Swing 中的 GUI 按钮

2022-08-31 17:09:02

我如何以编程方式单击 Swing JButton,以注册所有相关的操作/鼠标事件并对用户可见(即,他们会看到按钮被按下,就好像他们实际单击了它一样)?

该按钮位于我正在运行的同一应用程序中;我没有尝试控制另一个应用程序中的按钮。我想我可以直接将事件注入队列,但如果可能的话,我宁愿避免这种方法,并且这样做不会显示可见的点击。

我看到java.awt.Robot类提供了移动鼠标和单击鼠标的方法,但不是让它单击特定按钮的方法。


答案 1

你试过使用doClick()吗


答案 2

如果不是您想要的,则可以将鼠标真正移动到按钮并按下它:doClick()

public void click(AbstractButton button, int millis) throws AWTException
{
    Point p = button.getLocationOnScreen();
    Robot r = new Robot();
    r.mouseMove(p.x + button.getWidth() / 2, p.y + button.getHeight() / 2);
    r.mousePress(InputEvent.BUTTON1_MASK);
    try { Thread.sleep(millis); } catch (Exception e) {}
    r.mouseRelease(InputEvent.BUTTON1_MASK);
}

推荐