Gig*_*ron 54 java swing awtrobot
我将如何以编程方式单击一个Swing JButton,以便注册所有相关的动作/鼠标事件并对用户可见(即他们看到按钮被按下就像他们实际点击它一样)?
该按钮与我正在运行的应用程序相同; 我不是想控制另一个应用程序中的按钮.我想我可以直接将事件注入队列,但是如果可能的话我宁愿避免使用这种方法,这样做也不会显示可见的点击.
我看到java.awt.Robot类提供了移动鼠标并单击鼠标的方法,但没有让它单击特定按钮.
Mar*_*aux 11
如果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);
}
Run Code Online (Sandbox Code Playgroud)