【发布时间】:2011-03-21 23:34:13
【问题描述】:
这里有一些代码可以让GCompound 通过拖动正确移动。
public void mouseDragged(MouseEvent e) {
currentLabel.setLocation(e.getX()+DX, e.getY()+DY);
}
public void mousePressed(MouseEvent e) {
currentLabel = (coolLabel) getElementAt(e.getX(),e.getY());
DX = currentLabel.getX()-e.getX();
DY = currentLabel.getY()-e.getY();
currentLabel.sendToFront();
}
它没有正确移动:
public void mouseDragged(MouseEvent e)
{
currentLabel.move(e.getX()+DX, e.getY()+DY);
}
public void mousePressed(MouseEvent e) {
currentLabel = (coolLabel) getElementAt(e.getX(),e.getY());
DX = -e.getX();
DY = -e.getY();
currentLabel.sendToFront();
}
有人可以解释为什么会这样吗?似乎我的代码的两个版本都在使用相同的想法......基本上在第一种情况下,我采用原始的GObject 和 set 它的位置基于与我原来位置的差异,在第二种情况下如果我根据与原始位置的差异移动原始对象。
【问题讨论】: