2008-08-21 22 views
7

Tengo una aplicación Java swing con un panel que contiene tres JComboBoxe s que no dibujan correctamente.
Los cuadros de la combox solo aparecen como la flecha hacia abajo en el lado derecho, pero sin la etiqueta del valor seleccionado actualmente.
Los cuadros se volverán a dibujar correctamente si la ventana se cambia de tamaño, ya sea más grande o más pequeña, incluso por un píxel.Java JPanel redraw issues

Todo mi Google ha apuntado a llamar revalidate() en el JPanel para solucionar esto, pero eso no me ha funcionado.
Llamar a updateUI() en el JPanel ha cambiado de mostrarse siempre incorrectamente a mostrar incorrectamente la mitad del tiempo.

¿Alguien más ha visto esto y ha encontrado una forma diferente de forzar un redibujado de los cuadros combinados?

Respuesta

6

¿Puede darnos más información sobre cómo agrega los cuadros combinados al JPanel? Esto es algo bastante común de hacer en Swing, así que dudo que sea un problema de JVM, pero supongo que todo es posible.

Específicamente, verificaría dos veces para asegurarme de que no está accediendo a la GUI desde ningún hilo de fondo. En este caso, tal vez esté leyendo las opciones de un DB o algo así y actualizando el JComboBox desde un hilo de fondo, que es un gran no-no en Swing. Ver SwingUtils.invokeLater().