J'ai un composant simple de JTabbedPane avec deux onglets. Lorsqu'un événement de bouton est tiré sur l'un des onglets, je veux la vue actuelle à définir à l'autre onglet immédiatement. Je peux obtenir avec succès l'onglet en cours à l'aide de setSelectedIndex (int) dans la méthode actionPerformed du bouton en question, mais la fonctionnalité restante de l'événement button peut parfois prendre un certain temps à se terminer.Java JTabbedPane onglet Commutateur immédiatement
Il semblerait que la modification setSelectedIndex (int) ne se produise pas immédiatement, et ne se produit que lorsque le corps de la méthode actionPerformed qui a été déclenchée par le bouton click/press est terminé. La raison pour laquelle je veux changer d'onglet lorsque je clique sur le bouton est que l'utilisateur peut voir un message dans une zone de texte de l'autre onglet en leur disant "traitement, veuillez patienter", etc., tandis que le reste de la fonctionnalité de clic sur le bouton est effectuée. Les résultats de cette fonctionnalité, lorsqu'ils arriveront, remplaceront le message "... please wait".
Alors qu'est-ce qui se passe maintenant est que je clique sur le bouton, il se fige sur cet onglet jusqu'à ce que la fonctionnalité du bouton a terminé entièrement, devenant ensuite. Donc, le message "... please wait" n'est jamais vu.
Je ne sais pas quoi faire. Créez un nouveau thread pour la "fonctionnalité", peut-être, et laissez le bouton cliquer sur l'événement déclencher le thread afin que l'événement de bouton peut finir et passer les onglets en attendant les résultats. Juste à voix haute. Toute aide est appréciée.
-Rob
ce que vous voulez sans doute faire est en fait quelque chose de différent: si vous pensez et si vous regardez des applications complexes (comme IDEs), vous remarquerez qu'ils ne se soucient généralement pas avec * « S'il vous plaît attendre » * messages intégrés dans chaque onglet/sous-onglet/sous-écran/quoi que ce soit de l'application. Qu'est-ce qu'ils font est de mettre une barre de progression qui peut être vu de ** tout ** partie de l'application et mettre à jour cette barre de progression de la «partie» de l'application dans laquelle l'utilisateur se trouve. * de chaque page chargée toujours au même endroit. Un design beaucoup plus agréable à mon avis. – SyntaxT3rr0r
Une barre de progression serait formidable, mais je suis un peu pressé avec cela, et je n'aurais certainement pas le temps pour la mise en place du suivi du temps restant. Je comprends ce que vous voulez dire, cependant, quand vous dites simplement mettre le message dans une zone universelle de l'application, je pourrais le considérer. – Rob