Как я могу произвольно переместить JWindow на экран

Мне нужен способ для перемещения JWindow на экран с помощью Drag & Drop. Я разбираю это с мышью и мышью слушателей движения, но это работает только частично (это не работает, если я хочу переместить окно вверх). Вот код

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;
    }
}

0 ответов

Другие вопросы по тегам