public class Main {
static JFrame jFrame = getJFrame();
static int width = jFrame.getBounds().width;
static int height = jFrame.getBounds().height;
public static void main(String[] args) {
JLabel labelx = new JLabel();
JLabel labely = new JLabel();
jFrame.add(labelx);
jFrame.add(labely);
labelx.setText(jFrame.getBounds().width + " width");
labely.setText(jFrame.getBounds().height + " height");
jFrame.revalidate();
while (true){
if(width != jFrame.getBounds().width || height != jFrame.getBounds().height){
labelx.setText(jFrame.getBounds().width + " width");
labely.setText(jFrame.getBounds().height + " height");
width = jFrame.getBounds().width;
height = jFrame.getBounds().height;
}else{
System.out.println();
}
}
}
private static JFrame getJFrame(){
JFrame jFrame = new JFrame();
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension screensize = tk.getScreenSize();
jFrame.setBounds(screensize.width/2-250,screensize.height/2-250,500,500);
jFrame.setVisible(true);
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
return jFrame;
}
}
while
работает на порядки быстрее, чем цикл Потока Обработки Событий, очередь событий просто забивается. System.out.println()
- операция блокирующая, поэтому её вызов даёт время циклу событий разобрать очередь.