Code
class ResizeWindowListener extends MouseAdapter {
private Rectangle startSide = null;
private final JFrame frame;
public ResizeWindowListener(JFrame frame) {
this.frame = frame;
}
@Override public void mousePressed(MouseEvent e) {
startSide = frame.getBounds();
}
@Override public void mouseDragged(MouseEvent e) {
if (startSide == null) return;
Component c = e.getComponent();
if (c == topleft) {
startSide.y += e.getY();
startSide.height -= e.getY();
startSide.x += e.getX();
startSide.width -= e.getX();
} else if (c == top) {
startSide.y += e.getY();
startSide.height -= e.getY();
} else if (c == topright) {
startSide.y += e.getY();
startSide.height -= e.getY();
startSide.width += e.getX();
} else if (c == left) {
startSide.x += e.getX();
startSide.width -= e.getX();
} else if (c == right) {
startSide.width += e.getX();
} else if (c == bottomleft) {
startSide.height += e.getY();
startSide.x += e.getX();
startSide.width -= e.getX();
} else if (c == bottom) {
startSide.height += e.getY();
} else if (c == bottomright) {
startSide.height += e.getY();
startSide.width += e.getX();
}
frame.setBounds(startSide);
}
}
References