首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模拟MouseEvent

模拟MouseEvent
EN

Stack Overflow用户
提问于 2014-05-26 06:59:49
回答 1查看 1.8K关注 0票数 1

我想模拟鼠标点击图形。我添加了一个Mouselistener,并在鼠标安装完成后执行了一些操作,但是我真的需要模拟用户在我的程序中点击我的图形.我怎么能说“MouseEvent e是表演的!”?

实际上,我想清理一个“图形2D画布”,当你点击一个名为“清洁”的J按钮。但是问题是,只有当用户单击我的“Graphics2D画布”时,才会执行清洁操作。我想制造“图形2D画布”是通过点击JButton清洗的错觉。

谢谢。

代码语言:javascript
复制
     addMouseListener(this);
     addMouseMotionListener(this);

代码语言:javascript
复制
public void mousePressed(MouseEvent e) {
            e.consume();
            x1=e.getX();
            y1=e.getY();
            if(figure==1 || figure==3 )   {x2=x1; y2=y1;}
            ;   }

PS :我不能使用机器人,因为我必须在每个操作系统上运行我的程序,而且有人告诉我,我不能在每个程序上运行这个:

代码语言:javascript
复制
Robot robot = null;
try {
    robot = new Robot();
} catch (AWTException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
}

 // SET THE MOUSE X Y POSITION
 robot.mouseMove(65*Fond_noir.pourcent_largeur, 16*Fond_noir.pourcent_hauteur);
 robot.mousePress(InputEvent.BUTTON1_MASK);
 robot.mouseRelease(InputEvent.BUTTON1_MASK);

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-26 07:45:53

你说的机器人是对的。它依赖于平台,并且不能保证它将支持所有平台上的所有特性,从JavaDoc:

请注意,某些平台需要特殊权限或扩展来访问低级别的输入控制。如果当前平台配置不允许输入控制,则在尝试构造机器人对象时将引发AWTException。例如,如果X服务器不支持(或不启用)XTEST2.2标准扩展,则X窗口系统将引发异常。

要模拟单击,只需执行以下操作:

代码语言:javascript
复制
JButton buttonToSimulateClicking = new JButton(...);
buttonToSimulateClicking.doClick(); // As simple as that !

如果您必须模拟单击“硬方式”,即模拟鼠标单击,则始终可以执行以下操作:

代码语言:javascript
复制
MouseEvent clickEvent = new MouseEvent(buttonToSimulateClicking, MouseEvent.MOUSE_CLICKED, ...);

EventQueue eventQueue = Toolkit.getDefaultToolkit().getSystemEventQueue();
eventQueue.dispatchEvent(clickEvent);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23864439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档