Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在鼠标事件中循环?_Java_Mouseevent - Fatal编程技术网

Java 如何在鼠标事件中循环?

Java 如何在鼠标事件中循环?,java,mouseevent,Java,Mouseevent,我将如何循环鼠标事件?例如,我只想打印鼠标位置的x和y坐标五次。有什么办法吗 编辑-如果我不太清楚,我很抱歉。我不想打印五次相同的坐标-我应该记录用户在我的JPanel上单击的位置的坐标。但是,我不想每次用户点击时都记录它——我只想记录一定次数的坐标,比如说,我想记录五个不同的坐标。单击5次后,程序停止录制。这是我目前的代码: private void getcoordinates(MouseEvent e){ System.out.println(e.getX()+" - "+e.get

我将如何循环鼠标事件?例如,我只想打印鼠标位置的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"??
}


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

我不知道你为什么需要它,但它不会有多大帮助。因为,鼠标的移动是以每分之一秒或纳秒为单位计算的。所以数到五个动作会在眨眼的时间内消失

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


要做到这一点,您不需要循环,而是需要识别要显示坐标的对象

如果我错了,请纠正我,您要打印鼠标位置(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()); 
      } 
});
...
private int i=0;
...
addMouseListener(新的MouseAdapter(){
公共无效鼠标按下(MouseEvent me){

if(i++)到目前为止你有什么?阅读鼠标事件的文档:如果你想显示x次,使用辅助变量进行计数。编辑了上面的内容,发布了我的代码。我明白了,但我仍然无法手动添加点,因为我需要完全由用户定义坐标。我无法预先确定每个位置点
private int i=0;
...
addMouseListener(new MouseAdapter() { 
      public void mousePressed(MouseEvent me) { 
        if(i++<5)
           System.out.println(me.getX()+"||"+me.getY()); 
      } 
});
...