Как скопировать полигон с помощью мыши? - PullRequest
0 голосов
/ 06 октября 2009

Как сделать копию многоугольника с помощью щелчка мыши (например, при щелчке мыши появляется всплывающее меню, показывающее меню для копирования).

У меня есть проблема, чтобы различать щелчок мыши, рисовать или копировать. Я создал метод где, когда пользователь нажал мышь, метод проверит, нажата ли мышь внутри существующего многоугольника или снаружи. Если он выходит за пределы многоугольника, он нарисует новый многоугольник. Если он снаружи, он будет перемещать многоугольник. Как я могу скопировать многоугольник?

.....
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;
     }
     }
 }

1 Ответ

0 голосов
/ 06 октября 2009

Вы можете нажать кнопку от события мыши. Такие как

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

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

    }

См. javadoc для MouseEvent для получения дополнительной информации.

...