Foros del Web » Programación para mayores de 30 ;) » Java »

Problema al ejecutar Java.

Estas en el tema de Problema al ejecutar Java. en el foro de Java en Foros del Web. Buenas, estoy aprendiendo Swing, estoy utilizando Eclipse y no se qué ocurre que para que se produzcan los cambios en la interfaz tengo que interactuar ...
  #1 (permalink)  
Antiguo 18/09/2012, 12:37
 
Fecha de Ingreso: abril-2012
Mensajes: 45
Antigüedad: 12 años
Puntos: 1
Problema al ejecutar Java.

Buenas, estoy aprendiendo Swing, estoy utilizando Eclipse y no se qué ocurre que para que se produzcan los cambios en la interfaz tengo que interactuar con ella, es decir. tengo una interfaz en la que al pulsar un botón se quita el panel que esta y se pone otro, pues bien, pulso el botón y se quita el panel pero hasta que, por ejemplo, no redimensiono la pantalla no me sale el nuevo panel y no se a que se debe esto.

También me ocurre que depende cuándo ejecute la pantalla inicial me sale bien o me sale con los objetos descolocados.

Alguna idea?

gracias de antemano ;).
  #2 (permalink)  
Antiguo 20/09/2012, 03:26
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Problema al ejecutar Java.

Hola:

Swing es un poco "puñetero". La solución rápida a tu problema es llamar a updateUI() cada vez que quites o añadas paneles. Depende de cómo tengas los componentes, prueba a llamar a updateUI() del panel/componente que acabas de añadir, o del panel/ventana que contiene al que acabas de añadir.

La explicación. Swing funciona bien si añades todos los componentes mientras no hay nada visible. La idea es que construyes totalmente la ventana y después la haces visible. Si en una ventana visible te decidas a añadir o quitar componentes, te pasa lo que te está pasando, que hasta que no redimensionas la ventana, no se hace efectivos los cambios.

Si en el arranque creas tu JFrame, lo haces visible y le añades componentes después todo seguido, el problema es que java lanza lo de hacer visible el JFrame en un hilo separado, por lo que mientras ese hilo hace el JFrame visible, a tí te da tiempo a añadir algunos componentes (quizás todos, quizás solo parte de ellos, según lo que tarde ese hilo separado). Eso hace que a veces te salga bien la ventana, a veces te salga mal. Para solucionar esto, construye toda la ventana antes de hacerla visible.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:53.