package com.atlauncher.ui.frame; import com.atlauncher.Resources; import java.awt.event.InputEvent; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import javax.swing.JFrame; public abstract class DraggableFrame extends JFrame implements MouseListener, MouseMotionListener{ private int dGX; private int dGY; public DraggableFrame(String title){ super(title); this.setUndecorated(true); this.setIconImage(Resources.makeImage("icons/icon")); this.addMouseListener(this); this.addMouseMotionListener(this); } @Override public void mousePressed(MouseEvent e){ if(e.getButton() == MouseEvent.BUTTON1){ this.dGX = e.getX(); this.dGY = e.getY(); } } @Override public void mouseDragged(MouseEvent e){ if((e.getModifiersEx() & InputEvent.BUTTON1_DOWN_MASK) != 0){ this.setLocation(e.getXOnScreen() - this.dGX, e.getYOnScreen() - this.dGY); } } @Override public void mouseMoved(MouseEvent e){} @Override public void mouseReleased(MouseEvent e){} @Override public void mouseEntered(MouseEvent e){} @Override public void mouseExited(MouseEvent e){} @Override public void mouseClicked(MouseEvent e){} }