以编程方式单击 Java Swing 中的 GUI 按钮
我如何以编程方式单击 Swing JButton,以注册所有相关的操作/鼠标事件并对用户可见(即,他们会看到按钮被按下,就好像他们实际单击了它一样)?
该按钮位于我正在运行的同一应用程序中;我没有尝试控制另一个应用程序中的按钮。我想我可以直接将事件注入队列,但如果可能的话,我宁愿避免这种方法,并且这样做不会显示可见的点击。
我看到java.awt.Robot类提供了移动鼠标和单击鼠标的方法,但不是让它单击特定按钮的方法。
我如何以编程方式单击 Swing JButton,以注册所有相关的操作/鼠标事件并对用户可见(即,他们会看到按钮被按下,就好像他们实际单击了它一样)?
该按钮位于我正在运行的同一应用程序中;我没有尝试控制另一个应用程序中的按钮。我想我可以直接将事件注入队列,但如果可能的话,我宁愿避免这种方法,并且这样做不会显示可见的点击。
我看到java.awt.Robot类提供了移动鼠标和单击鼠标的方法,但不是让它单击特定按钮的方法。
如果不是您想要的,则可以将鼠标真正移动到按钮并按下它: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);
}