class DragListener extends MouseAdapter {
private static final int PADDING = 10;
private int mouseX;
private int mouseY;
private boolean resizing = false;
@Override
public void mouseMoved(MouseEvent e) {
JFrame frame = (JFrame) e.getSource();
if (isSizeGrip(frame, e)) {
setCursor(Cursor.getPredefinedCursor(Cursor.NW_RESIZE_CURSOR));
} else {
setCursor(Cursor.getDefaultCursor());
}
}
@Override
public void mousePressed(MouseEvent e) {
JFrame frame = (JFrame) e.getSource();
mouseX = e.getX();
mouseY = e.getY();
resizing = isSizeGrip(frame, e);
}
@Override
public void mouseReleased(MouseEvent e) {
resizing = false;
}
@Override
public void mouseDragged(MouseEvent e) {
JFrame frame = (JFrame) e.getSource();
if (resizing) {
frame.setSize(e.getX(), e.getY());
} else {
frame.setLocation(frame.getLocation().x + (e.getX() - mouseX), frame.getLocation().y + (e.getY() - mouseY));
//if (rectFrame != null) {
Point point = getLocation();
rectFrame.x = point.x;
rectFrame.y = point.y;
//}
}
}
private boolean isSizeGrip(JFrame frame, MouseEvent e) {
return !iconized && (e.getX() >= frame.getWidth() - PADDING && e.getY() >= frame.getHeight() - PADDING);
}
}