Как сделать копию многоугольника с помощью щелчка мыши (например, при щелчке мыши появляется всплывающее меню, показывающее меню для копирования).
У меня есть проблема, чтобы различать щелчок мыши, рисовать или копировать. Я создал метод
где, когда пользователь нажал мышь, метод проверит, нажата ли мышь внутри существующего многоугольника или снаружи. Если он выходит за пределы многоугольника, он нарисует новый многоугольник. Если он снаружи, он будет перемещать многоугольник. Как я могу скопировать многоугольник?
.....
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;
}
}
}