我想模拟鼠标点击图形。我添加了一个Mouselistener,并在鼠标安装完成后执行了一些操作,但是我真的需要模拟用户在我的程序中点击我的图形.我怎么能说“MouseEvent e是表演的!”?
实际上,我想清理一个“图形2D画布”,当你点击一个名为“清洁”的J按钮。但是问题是,只有当用户单击我的“Graphics2D画布”时,才会执行清洁操作。我想制造“图形2D画布”是通过点击JButton清洗的错觉。
谢谢。
addMouseListener(this);
addMouseMotionListener(this);public void mousePressed(MouseEvent e) {
e.consume();
x1=e.getX();
y1=e.getY();
if(figure==1 || figure==3 ) {x2=x1; y2=y1;}
; }PS :我不能使用机器人,因为我必须在每个操作系统上运行我的程序,而且有人告诉我,我不能在每个程序上运行这个:
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);
}发布于 2014-05-26 07:45:53
你说的机器人是对的。它依赖于平台,并且不能保证它将支持所有平台上的所有特性,从JavaDoc:
请注意,某些平台需要特殊权限或扩展来访问低级别的输入控制。如果当前平台配置不允许输入控制,则在尝试构造机器人对象时将引发AWTException。例如,如果X服务器不支持(或不启用)XTEST2.2标准扩展,则X窗口系统将引发异常。
要模拟单击,只需执行以下操作:
JButton buttonToSimulateClicking = new JButton(...);
buttonToSimulateClicking.doClick(); // As simple as that !如果您必须模拟单击“硬方式”,即模拟鼠标单击,则始终可以执行以下操作:
MouseEvent clickEvent = new MouseEvent(buttonToSimulateClicking, MouseEvent.MOUSE_CLICKED, ...);
EventQueue eventQueue = Toolkit.getDefaultToolkit().getSystemEventQueue();
eventQueue.dispatchEvent(clickEvent);https://stackoverflow.com/questions/23864439
复制相似问题