Lorsque l'un des panneaux présents dans un JTabbedPane
est cliqué, je dois effectuer quelques actions au démarrage. Dites, par exemple, je dois vérifier le nom d'utilisateur et mot de passe. Seulement si ceux-ci correspondent, les opérations de panneau particulières doivent être effectuées. Pouvez-vous suggérer des méthodes?JTabbedPane: Actions effectuées avant l'affichage de l'onglet sélectionné
Répondre
Pas sûr que je comprends parfaitement votre question, mais je ferais quelque chose comme:
- Ajouter un ChangeListener au JTabbedPane pour écouter le premier clic onglet.
- Lorsqu'un événement ChangeEvent se produit, effectuez la connexion sur un thread d'arrière-plan à l'aide d'un SwingWorker.
- Si la connexion réussit, effectuez les opérations d'interface utilisateur requises sur le fil d'envoi d'événement.
Par exemple:
tabbedPane.addChangeListener(new ChangeListener() {
private boolean init;
public void stateChanged(ChangeEvent e) {
if (!init) {
init = true;
new SwingWorker<Boolean, Void>() {
@Override
protected void done() {
try {
boolean loggedIn = get();
if (loggedIn) {
// Success so perform tab operations.
}
} catch (InterruptedException e1) {
e1.printStackTrace(); // Handle this.
} catch (ExecutionException e1) {
e1.printStackTrace(); // Handle this.
}
}
protected Boolean doInBackground() throws Exception {
// Perform login on background thread. Return true if successful.
return true;
}
}.execute();
}
}
});
L'action de changer l'onglet est déclenchée par un auditeur de la souris dans la classe de l'interface utilisateur. il passe en revue et vérifie s'il y a un onglet à la coordonnée cliquée et si oui, si l'onglet est activé. Si ce critère est rempli, il appellera setSelectedIndex(int)
sur votre JTabbedPane
. Pour intercepter le changement d'onglet, vous pouvez ignorer setSelectedIndex(int)
pour déclencher une vérification des autorisations. Une fois les autorisations validées, vous pouvez appeler le super.setSelectedIndex(int)
. Cela devrait faire ce que vous voulez. S'il vous plaît noter que si la vérification des autorisations est un appel de longue durée (appel à une base de données ou un serveur), vous devez utiliser quelque chose comme un SwingWorker
briser votre traitement, de sorte que la vérification des autorisations est effectuée sur le AWT EventQueue
et l'appel au super.setSelectedIndex(int)
est fait sur le AWT EventQueue
.
- 1. Mettre l'onglet en avant dans JTabbedPane
- 2. Panneau de masque ExtJS pendant que les actions sont effectuées
- 3. JTabbedPane: Composants avant et après les onglets eux-mêmes
- 4. JTabbedPane ajoutant des composants NULL
- 5. Actions de post-construction CruiseControl.NET
- 6. Actions de confirmation Javascript
- 7. L'élément sélectionné n'est pas sélectionné
- 8. Struts erreur commune avant
- 9. Actions d'installation personnalisées
- 10. Java JTabbedPane, comment puis-je sélectionner un onglet à partir d'un bouton?
- 11. Conditions de lancement MSI Actions personnalisées
- 12. jquery - Plusieurs actions de classe
- 13. Quel est le problème avec JSplitPanel (ou JTabbedPane)?
- 14. Actions MVC, dois-je créer 2 actions pour la connexion?
- 15. Sélectionner non sélectionné
- 16. Valider Linq2Sql avant SubmitChanges()
- 17. Liaison au contenu TabItem sélectionné
- 18. actions iframe, ASP trouble
- 19. MSP et actions personnalisées
- 20. Comment répondre aux requêtes HTML effectuées via AJAX dans Rails
- 21. Extension du shell pour le fichier sélectionné
- 22. Recherche de texte marqué (sélectionné) dans Emacs
- 23. Obtenir l'identifiant de noeud sélectionné
- 24. Supprimer l'élément sélectionné de ListView
- 25. Dropdowns de SelectList en C# (valeur sélectionné)
- 26. Xcode 3.2 Actions/points de vente manquants?
- 27. Est-il possible de masquer la barre d'onglets de JTabbedPane si un seul onglet existe?
- 28. Actions personnalisées du programme d'installation
- 29. WinForms: Lier des actions ensemble
- 30. Ruby on Rails Actions help
merci pour votre réponse .. –