Existe dans la classe JDialog un moyen d'empêcher qu'une fenêtre enfant (JDialog) soit affichée plus d'une fois lorsque le bouton de la fenêtre principale (JFrame) utilisé pour l'ouvrir, est pressé plusieurs fois? Merci d'avance!Prévention des doublons inutiles des boîtes de dialogue dans Java Swing
Répondre
Oui, et vous n'avez pas besoin de rendre la boîte modale pour le faire (bien que le rendre modal serait le moyen le plus simple).
Il suffit de faire quelque chose comme le
Dans vos membres delcarations suivantes:
private final MyDialog dialog = new MyDialog();
Dans votre code:
private void showDialog() {
dialog.setVisible(true);
dialog.requestFocus(); // May be needed to bring window to front
}
Cela garantira que vous n'instancier la boîte une fois. Appelez simplement showDialog() chaque fois que vous appuyez sur le bouton.
Vous pouvez définir la modalité JDialog
, puis la fenêtre parente ne réagit pas tant qu'elle n'est pas fermée.
Ou vous pouvez initialiser le JDialog
avant, et juste le rendre visible lorsque vous appuyez sur votre bouton. Le rendre visible deux fois ne l'affichera pas deux fois.
Une autre façon que j'ai faite dans le passé avec Swing est que lorsque le bouton est pressé, la première chose que je fais est de désactiver le bouton. Ensuite, j'utilise le modèle observable pour regarder la fenêtre enfant et réactiver le bouton lorsque la fenêtre enfant est fermée. De cette façon, si l'affichage de la fenêtre enfant prend du temps, l'utilisateur ne peut pas cliquer dessus plusieurs fois et faire des erreurs.
- 1. Comment supprimer les boîtes de dialogue InstallShield InstallScript MSI inutiles?
- 2. Empiler des boîtes de dialogue sous Android
- 3. Comment créer des boîtes de dialogue de chargement dans Android?
- 4. Personnalisation des boîtes de dialogue dans les applications Eclipse
- 5. boîtes combo Swing
- 6. lien en HTML intégré dans les boîtes de dialogue Java
- 7. Watin - Gestion des boîtes de dialogue de confirmation avec ConfirmDialogHandler
- 8. Rappelez-vous la taille des boîtes de dialogue
- 9. WiX 3.0: Liste des boîtes de dialogue d'interface utilisateur disponibles
- 10. jquery boîtes de dialogue multiples
- 11. Violations d'accès dans des endroits étranges lors de l'utilisation des boîtes de dialogue Windows
- 12. Comment implémenter des langages multiples dans des applications Java/Swing?
- 13. Liste des propriétés de l'interface Java Swing?
- 14. Prévention des copies en double dans une vue de table
- 15. Problème de rendu avec l'application Swing et les boîtes de dialogue modales
- 16. Fusion de deux HashTable avec élimination des doublons dans Java
- 17. Commutateurs de contexte Java inutiles
- 18. Ordre des onglets dans un contrôle onglet avec des boîtes de dialogue imbriquées (WS_EX_CONTROLPARENT)
- 19. Sur les boîtes de dialogue
- 20. Prévention des erreurs de conversion
- 21. PyQt: suppression des colonnes inutiles
- 22. Java Swing JEditorPane: manipuler des documents stylés
- 23. Prévention des problèmes de boîtier dans Subversion
- 24. Ivy chargement des dépendances inutiles?
- 25. Clonage de Java ArrayList et prévention des modifications
- 26. Suggérer des bibliothèques Java Swing Component
- 27. Portabilité des applications Java Swing vers OSX
- 28. Hibernate: trouver des doublons
- 29. Additionner des doublons dans Excel
- 30. supprimer des doublons de données de tableau d'objets java
Pete, le code d'exemple fait toujours une meilleure réponse, non? –