public void mouseDragged(MouseEvent e)
{
if(dragflag)
{
int p = e.getX();
int q = e.getY();
int i;
// System.out.println(p+","+q);
for( i=0 ;i<shapes.size() ;i++)
{
if(shapes.get(i).isSelected(p, q))
{
selected = i;
break;
}
}
System.out.println(shapes.get(i).getshape);
if(shapes.get(i).getshape==2)
{
shapes.remove(i);
shapes.add(i, new Rect(p,q,c+p-a,d+q-b,width,color));
repaint();
}
}
}`这里写代码片`
我的FAKECAD程序中,关于拖动的Bug,就在于i的传值问题,如上的代码跑出来会有很多线程的问题,如果在设定一个Int selected,当isselected执行的时候,把i传给selected,再break出来,问题就可以解决,可是我还不知道原理是什么。。。