簡體   English   中英

如何在鼠標事件中循環播放?

[英]How to loop in a mouse event?

我將如何循環鼠標事件? 例如,我只想打印鼠標位置的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次。 是的,我確實意識到了這里的問題,但是如何解決這個問題?

我不確定您為什么需要它,但是它不會那么有用。 因為,鼠標的運動以幾分之一秒或十億分之一秒為單位。 因此,計數五個動作將在眨眼時間內消失。

相反,我建議您將其更改為五個位置點。 這樣,每當您在這些位置上移動鼠標指針時,都可以顯示鼠標坐標。

為此,您無需循環,只需標識要在其上顯示坐標的對象即可。

如果我錯了,請糾正我,您要打印鼠標位置(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()); 
      } 
});
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM