Les boîtes de dialogue sont des outils qui fournissent des modes interactifs pour les processus de dialogue Human-Computer. L'application fournit des informations à l'utilisateur via une boîte de dialogue ou obtient des informations de l'utilisateur. Une boîte de dialogue est une fenêtre temporaire où vous pouvez placer des contrôles pour obtenir la saisie des utilisateurs. Dans Swing, il y a deux classes de dialogue, qui sont la classe JDialog et la classe JoptionPane. La classe JDialog fournit la construction et la gestion des boîtes de dialogue communes;
Classe JDialog
La classe JDialog sert de classe de base pour la boîte de dialogue. Les boîtes de dialogue sont différentes des fenêtres générales.
Les boîtes de dialogue sont divisées en obligatoires et non obligatoires. La boîte de dialogue obligatoire ne peut pas interrompre le processus de dialogue tant que la boîte de dialogue ne sera pas terminée, et le programme ne répondra pas aux événements en dehors de la boîte de dialogue. Une boîte de dialogue non obligatoire peut interrompre le processus de dialogue et répondre aux événements en dehors de la boîte de dialogue. Le type forcé est également appelé boîte de dialogue en mode et la boîte de dialogue non forcée est également appelée boîte de dialogue non mode.
Les objets JDialog sont également un conteneur, vous pouvez également attribuer un gestionnaire de mise en page à la boîte de dialogue JDialog. Cependant, les composants ne peuvent pas être ajoutés directement à la boîte de dialogue. Étant donné qu'une boîte de dialogue dépend d'une fenêtre, pour créer une boîte de dialogue, vous devez d'abord créer une fenêtre.
Il existe 3 constructeurs couramment utilisés pour la classe JDialog:
Il existe plusieurs autres méthodes communes de la classe JDialog:
[Exemple] L'applet déclare une classe de fenêtre utilisateur et une classe de boîte de dialogue. Saisissez les informations correspondantes dans la boîte de dialogue et appuyez sur le bouton OK dans la boîte de dialogue. Déterminez la méthode de surveillance du bouton, transférez les informations entrées dans la boîte de dialogue vers la fenêtre utilisateur et affichez les informations de sélection dans la zone de texte correspondante de la fenêtre utilisateur.
import java.applet. * Importer javax.swing. *; import java.awt. *; import java.awt.event. *; class mywindow étend jframe implémente ActionListener {p rivate jbutton button1, bouton2; JETTIEUX STATIQUE PRIVÉE, Text2; (100100); = New JTextfield (20); statique void retur nname (String S) {if (flg == 1) text1.setText ("Le fruit sélectionné est:" + s); + S);} public void ActionPerform (ActionEvent e) {MyDialog Dialog; 1; Titre JLabel; JtextField Text; JBUTTON fait; Nom "); text = new JTextField (10); text.setEdIT (true); Con.SetLayout (new FlowLayout ()); Con.SetSize (200,100); setModal (false); Done = new JButton (" OK ") ; ;L'exemple ci-dessus crée une boîte de dialogue obligatoire. De cette façon, vous pouvez voir l'effet de certains dialogues dans l'interface.
Modifiez l'exemple ci-dessus en une boîte de dialogue non obligatoire avec juste une petite quantité de modifications. Tout d'abord, modifiez le code "super (f, s, true);" dans la méthode de construction de la boîte de dialogue à "super (f, s, false);".
Le deuxième changement: il s'avère que la méthode returnName () est appelée lors de la réponse à l'événement du bouton de confirmation, et la chaîne obtenue par la boîte de dialogue est renvoyée au programme. Maintenant, lorsque la chaîne de sélection d'entrée de la zone de texte se termine, la méthode doit être appelée immédiatement. Pour ce faire, vous devez surveiller les événements d'entrée dans la zone de texte et enregistrer le moniteur du texte:
public void ActionPerformed (ActionEvent e) {if (e.getSource () == text) {myWindow.returnname (text.getText ()); text .getText ());Classe JoptionPane
Il est souvent rencontré des situations de dialogue très simples. La classe JoptionPane fournit un ensemble de méthodes statiques pour permettre aux utilisateurs de sélectionner un certain type de boîte de dialogue. Le code suivant est la boîte de dialogue Cochez:
int résultat = joptionpane.showconfirmDialog (parent, "Voulez-vous vraiment quitter?", "Exit confirm", joptionpane.eses_no_cancel_option);
Le texte "Confirmer" dans la partie médiane du nom de la méthode est le type de création d'une boîte de dialogue, et la confirmation du texte indique que la boîte de dialogue de confirmation est sélectionnée. Modifiez la confirmation du texte en l'un des trois autres types et devient la boîte de dialogue de type correspondant. La signification des quatre paramètres du code ci-dessus est: le premier paramètre spécifie la fenêtre parent de cette boîte de dialogue; Spécifie que la boîte de dialogue contient trois les boutons sont "Oui (y)," Non (n) et "Annuler". Le résultat de retour de la méthode est le résultat de l'utilisateur qui répond à cette boîte de dialogue, voir les réponses possibles données dans le tableau 11-5.
La boîte de dialogue d'entrée demande à l'utilisateur de saisir les informations de sélection sous le formulaire d'une liste ou d'une zone de texte. Voici un code schématique pour une boîte de dialogue d'entrée qui sélectionne un projet en cours d'exécution dans la liste:
Résultat de la chaîne = (String) joptionpane.showinputDialog (parent, "Veuillez sélectionner un sport", "Ceci est la boîte de dialogue Sport Sélection", joptionpane.question_message, null, nouvel objet [] {"Play Football", "Play Basketball", " Running »,« Jump Rope »},« Running »); Le quatrième paramètre est le type d'information, le cinquième paramètre n'a pas d'effet spécial ici et est toujours nul; le sixième paramètre définit un tableau de chaînes à choisir, et le septième paramètre est la valeur par défaut du choix. La boîte de dialogue comprend également les boutons OK et Annuler.
Type de boîte de dialogue JoptionPane
Résultats renvoyés par la boîte de dialogue JoptionPane
Options de type d'informations pour la boîte de dialogue JoptionPane
Parfois, le programme diffuse simplement certaines informations et ne nécessite pas que l'utilisateur ait des commentaires. Une telle boîte de dialogue peut être créée avec la forme de code suivante:
JOptionPane.showMessageDialog (parent, "Ceci est un programme Java", "Je suis la boîte de dialogue Informations de sortie", joptionpane.plain_message);
La signification des trois premiers paramètres dans le code ci-dessus est la même que celle décrite ci-dessus, et le paramètre final est que le type d'information est spécifié pour ne pas inclure d'icônes.