Si pongo esto:
Código
super(title); wndListener Eventos = new wndListener(); addWindowListener(Eventos); add(button); button.setLocation(64, 64); button.setSize(64, 64); setSize(256, 256); setVisible(true); }
Me aparece una ventana de 256 * 256 con un botón de comando de 256 * 256 (cubriendo toda el área), pero si pongo esto que es el mismo código pero con los dos últimos párrafos permutados:
Código
super(title); wndListener Eventos = new wndListener(); addWindowListener(Eventos); setSize(256, 256); setVisible(true); add(button); button.setLocation(64, 64); button.setSize(64, 64); }
Me aparece una ventana de 256 * 256 con un botón de 64 * 64 en su respectivo lugar.
Me he dado cuenta que es el método setVisible(boolean) que mi clase ha heredado de Frame, si llamo a ese método como lo hago en los dos casos para hacer visible mi ventana, se me redimensiona el botón dependiendo de dónde esté el código, si no lo llamo simplemente no aparece nada.
Mi pregunta, ¿por qué ese setVisible(boolean) redimensiona el componente de mi Frame? Se supone que eso es trabajo mío y no debe ser la máquina quien decide que se hace.
De ser así imaginen si tengo que crear un Frame con muchos objetos dentro: tendría que hacer visible la ventana y luego ir creando los objetos y acomodándolos y Java no es muy rápido que digamos.