如何循环鼠标事件?

时间:2014-01-27 05:18:46

标签: java mouseevent

我将如何循环鼠标事件?例如,我想打印出鼠标位置的x和y坐标五次。任何想法如何做到这一点?

编辑 - 如果我不太清楚,我很抱歉。我不想打印出相同的坐标五次 - 我应该记录用户点击我的JPanel的坐标。但是,我不希望每次用户点击都记录它 - 我只想记录一定次数的坐标,比方说,我想记录五个不同的坐标。点击5次后,程序停止录制。到目前为止,这是我的代码:

private void getcoordinates(MouseEvent e){   
System.out.println(e.getX()+" - "+e.getY());
 }    


private void recordCoordinates(final int x){
addflagpanelRight.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
    //call the getcoordinates function -
    //now loop the getcoordinates function for each "x"??

}

   //Empty definitions
    @Override
    public void mouseClicked(MouseEvent e) {}
    @Override
    public void mouseReleased(MouseEvent e) {}  
    @Override
    public void mouseEntered(MouseEvent e) {}   
    @Override
    public void mouseExited(MouseEvent e) {}

});
}

每次我尝试循环getcoordinates函数时,我都会得到每个x的相同坐标。如果x设置为3,那么当它循环3次时,它会打印1组坐标3次。是的,我确实在这里意识到了问题,但我该如何解决这个问题呢?

2 个答案:

答案 0 :(得分:0)

我不确定你为什么需要它,但它不会那么有用。因为,小鼠的运动在每秒或纳秒上计算。因此,计算五个的动作将会眨眼。

相反,我建议您将其更改为五个位置点。因此,无论何时将鼠标指针移动到这些位置,都可以显示鼠标坐标。

要做到这一点,你不需要循环,但要确定你想要显示坐标的对象。

答案 1 :(得分:0)

如果我错了,请纠正我,你要打印五次鼠标位置(x,y)。因此,在这种情况下,您将鼠标侦听器添加到要侦听的容器中,并检查是否已经打印了5次!并为该检查创建一个类变量。

private int i=0;
...
addMouseListener(new MouseAdapter() { 
      public void mousePressed(MouseEvent me) { 
        if(i++<5)
           System.out.println(me.getX()+"||"+me.getY()); 
      } 
});
...