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