J'ai un programme principal, dans lequel GUI est basé sur le swing et selon l'un des quatre états, les éléments GUI ont des paramètres différents. Et si je veux rafraîchir l'interface graphique, j'appelle seulement updateGUI avec le paramètre approprié, et tout va bien. Mais le programme crée également un thread supplémentaire, qui après le traitement des données pertinentes devrait changer le programme principal de l'interface graphique. Malheureusement, je ne peux pas dans ce thread appeler la méthode updateGUI (..).Actualisation de l'interface graphique par un autre thread dans java (swing)
Je sais que je peux utiliser invokeLater ou SwingWorker pour actualiser mais il y a plus de 10 éléments donc je préfère utiliser la méthode udpateGUI().
Je serai reconnaissant pour toute allusion.
S'il vous plaît jeter un oeil à la réponses sur les événements et le bus de l'événement dans cette question: http://stackoverflow.com/questions/7131484/how-to-pass-the-message-from-working-thread-to -gui-in-java/7131574 # 7131574 –
Pourquoi ne pas appeler updateGUI de l'autre thread? Mis à part l'accès non synchronisé à la variable d'état, je ne vois pas pourquoi vous ne pourriez pas utiliser cette méthode depuis l'autre thread. –
si j'appelle Frame f = new Frame(); f.udpateGUI (..); alors bien sûr rien ne s'est passé. Sinon, comment puis-je invoquer cette méthode? – galica