0
我做了一个drag'n'drop算法,让组件拖到窗口内。setLocation移动后的窗口
它表现良好,直到我移动框架窗口...
如果我移动窗口,该部件的位置,然后从等于I移动的帧当我点击的距离的距离偏移它,当我拖动它。
任何人都知道为什么?
代码示例:
public void mousePressed(final MouseEvent e) {
if(SwingUtilities.isLeftMouseButton(e)) {
origin = panel.getLocationOnScreen();
panel.setLocation(origin.x, origin.y-panel.getHeight()/2);
view.add(panel, JLayeredPane.DRAG_LAYER);
}
}
public void mouseDragged(MouseEvent e) {
if(SwingUtilities.isLeftMouseButton(e)) {
panel.setLocation(e.getLocationOnScreen().x - panel.getWidth()/2, e.getLocationOnScreen().y - panel.getHeight()/2);
}
}
我预计'e.getLocationOnScreen()'给全局坐标,而'panel.setLocation(...)'使用相对坐标。但这并不能解释它为什么在第一个地方工作... – 2013-03-05 14:15:11
@Heuster,你会知道如何将setLocation转换为全局坐标? – 2013-03-05 14:34:44