1

我需要通过拖放在屏幕上移动 JWindow 的方法。我用鼠标和鼠标运动侦听器对此进行了排序,但它只能部分工作(如果我想向上移动窗口,它就不起作用)。这是代码。

private boolean drag;
    ...
@Override
public void mouseDragged(MouseEvent e) {
    if(e.getY() < 18){
        p = new Point(e.getXOnScreen(), e.getYOnScreen());
        drag = true;
    }
}

@Override
public void mouseReleased(MouseEvent e) {
    if(drag){
        System.out.println((e.getXOnScreen() + " " + p.x));
        System.out.println((e.getYOnScreen() + " " + p.y));
        this.setLocation(this.getX() + (e.getXOnScreen() - p.x), this.getY() + (e.getYOnScreen() - p.y));
        drag = false;
    }
}
4

0 回答 0