2010-09-15 22 views
20

Quiero agregar algunos componentes nuevos a mi JFrame durante el tiempo de ejecución cuando se presiona un botón. Esto funciona hasta ahora, pero tengo que cambiar el tamaño de la ventana manualmente para ver los nuevos componentes.actualizar JFrame después de agregar nuevos componentes

¿Hay alguna acción que pueda disparar o un método para llamar para actualizar la ventana? Cualquier ayuda apreciada. Gracias por adelantado.

Respuesta

36

Tienes que revalidate(); el marco. Si eso no funciona, también hay que llamar repaint();

+1

ok tuve que hackear un poco en mis clases pero funciona! (¿Por cierto querías decir validate() ¿correcto?;)) – reox

+0

de hecho, dado que JFrame ya es un contenedor de nivel superior, solo puedes llamar a validate() ;. – crusam

+0

Bueno, en general, los componentes se agregan a un JPanel, no al marco directamente, por lo que se volvería a validar el panel. – camickr

7

llamada

revalidate(); 
repaint(); 

revalidate le dice al controlador de distribución para restablecer basado en la nueva lista de componentes. Esto también activará una llamada para volver a pintar.

repaint se usa para indicarle a un componente que se vuelva a pintar.

0

en java repaint(); trabajando para mí. mientras que revalidate(); no funciona para mí.

Cuestiones relacionadas