【发布时间】:2015-10-11 13:53:05
【问题描述】:
当用户单击/按住鼠标按钮时,我试图用鼠标移动图像。当用户按住鼠标时,我设法做到了这一点(它会用鼠标实时更新),但是,当我点击图像时,图像会将其位置调整到更新的区域,这不是我想要它做。如果图像被点击,我希望图像移动的唯一一次是用户再次点击,第二次。因此,假设用户单击位于 (0,0) 处的图像,如果用户再次单击屏幕上的其他位置,则该位置现在位于 (x,y)。
这是我所拥有的:
@Override
public void mouseClicked(MouseEvent e) {
clickCount++;
if(clickCount % 2 == 0){
p.setLocation(e.getX(), e.getY());//p is just a panel that contains the img
repaint();
}
System.out.println("mouse clicked...");
}
更新代码:
public void mouseClicked(MouseEvent e) {
Object o = e.getSource();
if(o instanceof JPanel)
clickCount++;
if(clickCount % 2 == 0 && clickCount != 0){
p.setLocation(e.getX(), e.getY());
repaint();
}
System.out.println("mouse clicked " + clickCount + " times");
}
这更接近工作,但是,如果您单击屏幕上的任意位置(在 clickCount % 2 == 0 之后),则图像会移动。
【问题讨论】:
标签: java swing mouseevent mouselistener