一千萬個為什麽

搜索

如何使用鼠標點擊復制多邊形?

如何使用鼠標點擊復制一個多邊形(例如,當鼠標點擊時,彈出菜單顯示復制菜單)。

我有問題來區分鼠標點擊,繪制或復制。我創建了一個方法 當用戶按下鼠標時,該方法將檢查鼠標是否在現有多邊形內部或外部按下。如果它在多邊形之外,它將繪制一個新的多邊形。如果它在外面,它會移動多邊形。我怎樣才能復制多邊形?

.....
public void mousePressed(MouseEvent e) {                    
  startDrag = new Point(e.getX(), e.getY());
  endDrag = startDrag;
  repaint();                
  for(Polygon p:triangles){                     
     if(p.contains(startDrag)){//if inside polygon triangle, mark the triangle
    selectedTriangle = p;
    break;
     }
  }
}

....

public void mouseClicked(MouseEvent e) {
   startDrag = new Point(e.getX(), e.getY());
   Polygon[] triArray = triangles.toArray(new   Polygon[triangles.size()]);
   if (e.getClickCount() ==2) {
      for (Polygon p:triArray){
     if (p.contains(startDrag)) {//Polygon has a 'contains(Point)' 
      triangles.remove (p);
          break;
     }
     }
 }

最佳答案

您可以從鼠標事件中獲取按鈕。如

    int button = e.getButton();
    if(button==MouseEvent.BUTTON1){

    }else if(button == MouseEvent.BUTTON3){

    }

查看MouseEvent的 javadoc 更多信息。

轉載註明原文: 如何使用鼠標點擊復制多邊形?