2015-11-05 60 views
0

所以我想要做的是一鍵後保持mousePressed方法'開',即使我沒有按住自己。然後接一個地點擊它會打開「關閉」保持鼠標按下活動後點擊一下

addMouseListener(new MouseAdapter() { 
     public void mousePressed(MouseEvent e) { 
      // save coord x,y when mouse is pressed 
      oldX = e.getX(); 
      oldY = e.getY(); 
     } 
    }); 

    addMouseMotionListener(new MouseMotionAdapter() { 
     public void mouseDragged(MouseEvent e) { 

      // coord x,y when drag mouse 
      currentX = e.getX(); 
      currentY = e.getY(); 

      if (g2 != null) { 
       // draw oval if g2 context not null 
       g2.drawOval(oldX, oldY, width, height); 
       g2.fillOval(oldX, oldY, width, height); 

       // refresh draw area to repaint 
       repaint(); 

       // store current coords x,y as olds x,y 
       oldX = currentX; 
       oldY = currentY; 
      } 
     } 
    }); 
+0

使用布爾字段..瞭解它是否被點擊了不... –

+0

設置一個布爾標誌(或跟蹤點擊次數和使用模塊化數學)並監視mouseMoved事件 – MadProgrammer

回答

1
  1. 處理的mousePressed()事件。然後在您的課堂中保留一個變量(可以說「clickCounter」),每次生成事件時都會增加一個變量。

  2. 然後,您將需要處理mouseMoved()事件以瞭解鼠標何時移動。

所以,現在你在mouseMoved()事件邏輯可以檢查是否變量是奇數,這表明鼠標剛剛被點擊:

if (clickCounter % 2 == 1) 
{ 
    add your logic here 
} 

,你可以繼續你切換一個布爾變量關閉/打開每個鼠標點擊。

相關問題