Вы можете реализовать ComponentListener и получить что-то вроде этого
@Override
public void componentResized(ComponentEvent arg0) {
Rectangle b = arg0.getComponent().getBounds();
arg0.getComponent().setBounds(b.x, b.y, b.width, b.width);
}
и использовать его для своего JFrame.Единственное, с JFrame это не вызывает это событие, пока мышь не будет отпущена.Если вы хотите видеть изменения при перетаскивании мыши, вам придется использовать JPanel и использовать для него этот ComponentListener, а не JFrame и заполнить фрейм панелью.