D'après ce que j'ai vérifié dans les sources JTabbedPane, la méthode fireStateChanged()
déclenche un événement de changement de mise au point si nécessaire, avant déclenchement de l'événement « stateChanged » réelle aux auditeurs.
Donc, en théorie, cela devrait arriver avant. Cependant, puisque je ne sais pas ce qui se passe dans la méthode appelée (SwingUtilities2.tabbedPaneChangeFocusTo(newComp)
), il est fort possible que l'événement passe à un autre thread, étant lié à la gestion de focus.
Le fireStateChanged()
est une méthode protégée, vous pouvez donc la remplacer dans votre propre JTabbedPane et vous assurer que le comportement est celui que vous voulez.
Donnez plus de détails sur votre cas d'utilisation réel, pour voir s'il peut y avoir une solution plus appropriée.
+1 pour référencer la source – Pops