Отслеживать изменение Point мыши за пределами Фрейма - Java
Формулировка задачи:
У меня проблема: пытаюсь реализовать перемещение недекорированного фрема по рабочему столу.
такой код выдает "Проблема с переменными позиционирования..." при отпускании мыши за фреймом:
Так как там Point от Фрейма становится null. Как отследить длину ведения мыши в какую-то сторону, не зависимо от того, находится ли она над фреймом. Это что, слушатель на рабочий стол вешать? Или как-то можно именно на мышь?
Можно прописать маусЛистенер и как-то связать? Есть короткие примеры?
Double mish1; Double mish2; ..... @Override public void mousePressed(MouseEvent l) { mish1 = getMousePosition(); } @Override public void mouseReleased(MouseEvent l) { mish2 = getMousePosition(); try { int mishResultX = (int)(mish2.getX() - mish1.getX()); int mishResultY = (int)(mish2.getY() - mish1.getY()); Launcher.this.setLocation(Launcher.this.getLocation().x + mishResultX, Launcher.this.getLocation().y + mishResultY); } catch (Exception ex) { System.err.println("Проблема с переменными позиционирования..."); } } });
Решение задачи: «Отслеживать изменение Point мыши за пределами Фрейма»
textual
Листинг программы
import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; import javax.swing.JFrame; public class JavaApplication4 extends JFrame { private int xOnPressed; private int yOnPressed; public JavaApplication4() { setUndecorated(true); setSize(100, 100); addMouseMotionListener(new MouseMotionAdapter() { @Override public void mouseDragged(MouseEvent e) { setLocation(getX() + e.getXOnScreen() - xOnPressed, getY() + e.getYOnScreen() - yOnPressed); xOnPressed = e.getXOnScreen(); yOnPressed = e.getYOnScreen(); } }); addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent e) { xOnPressed = e.getXOnScreen(); yOnPressed = e.getYOnScreen(); } }); } public static void main(String[] args) { new JavaApplication4().setVisible(true); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д