Question

J'ai une application Java Swing avec un panneau contenant trois JComboBoxes qui ne dessinent pas correctement.
Les zones de liste déroulante apparaissent simplement sous la forme d'une flèche vers le bas sur le côté droit, mais sans l'étiquette de la valeur actuellement sélectionnée.
Les cases se redessineront correctement si la fenêtre est redimensionnée plus grande ou plus petite d'un pixel.

Toutes mes recherches sur Google ont indiqué l'appel revalidate() sur le JPanel pour résoudre ce problème, mais cela n'a pas fonctionné pour moi.
Appel updateUI() sur le JPanel l'a changé d'un affichage toujours incorrect à un affichage incorrect la moitié du temps.

Quelqu'un d'autre a-t-il vu cela et trouvé un moyen différent de forcer un redessin des zones de liste déroulante ?

Était-ce utile?

La solution

Pouvez-vous nous donner plus d'informations sur la façon dont vous ajoutez les zones de liste déroulante au JPanel ?C'est une chose assez courante à faire dans Swing, donc je doute que ce soit un problème JVM mais je suppose que tout est possible.

Plus précisément, je vérifierais pour m'assurer que vous n'accédez pas à l'interface graphique à partir d'un thread en arrière-plan.Dans ce cas, vous lisez peut-être les choix d'une base de données ou quelque chose du genre et mettez à jour la JComboBox à partir d'un thread d'arrière-plan, ce qui est un gros non-non dans Swing.Voir SwingUtils.invokeLater().

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top