如何使用鼠标单击创建多边形的副本(例如,当鼠标单击时,将弹出一个菜单,显示复制菜单)。
我在区分鼠标点击、绘图或复制时遇到了问题。我创建了一个方法,当用户按下鼠标时,该方法将检查鼠标是按在现有多边形的内部还是外部。如果它在多边形之外,它将绘制一个新的多边形。如果它在外面,它将移动多边形。如何才能复制多边形?
.....
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;
}
}
}发布于 2009-10-06 18:03:38
您可以从鼠标事件中按下按钮。比如
int button = e.getButton();
if(button==MouseEvent.BUTTON1){
}else if(button == MouseEvent.BUTTON3){
}有关更多信息,请参阅MouseEvent的javadoc。
https://stackoverflow.com/questions/1527010
复制相似问题