我将如何循环鼠标事件?例如,我想打印出鼠标位置的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次。是的,我确实在这里意识到了问题,但我该如何解决这个问题呢?
答案 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());
}
});
...