non devi chiamara repaint ma validate dopo che hai fatto il resize
codice:
import javax.swing.*;
import java.awt.event.*;
public class ResizableJWindow extends JWindow implements ActionListener {
private int MODE = 0;
public void actionPerformed (ActionEvent ae) {
MODE++;
if (MODE != 3) {
this.setSize(this.getWidth() - MODE * 100, this.getHeight() - MODE * 100);
}
else {
this.setSize(400, 400);
}
this.validate();
MODE = MODE % 3;
System.out.println("Resize performed");
}
public ResizableJWindow() {
super();
JButton res = new JButton("Ridimensionami");
res.addActionListener(this);
this.getContentPane().add(res);
this.setSize(400,400);
this.setVisible(true);
}
public static void main (String[] args) {
ResizableJWindow rjw = new ResizableJWindow();
}
}