La fonction principale d'une boîte de dialogue est qu'une application ou un site Web récupère certaines entrées de l'utilisateur. Cette entrée peut être un accusé de réception indiquant qu'ils ont lu un message ou quelque chose qu'ils ont saisi dans une zone de texte.

Une boîte de dialogue capte immédiatement l'attention de l'utilisateur. C'est un outil parfait pour collecter ou afficher des informations importantes.

Java est un langage diversifié qui fournit plusieurs classes pour créer des boîtes de dialogue. Ces classes incluent JOptionPane, JDialog et JFrame.

La classe JOptionPane

Vous pouvez créer une boîte de dialogue standard en utilisant l'une des nombreuses méthodes statiques appartenant à la classe JOptionPane. Ceux-ci inclus:

  • showMessageDialog(), qui relaie un message à l'utilisateur.
  • showConfirmDialog(), qui pose une question nécessitant une confirmation.
  • showInputDialog(), qui invite l'utilisateur à entrer.
  • showOptionDialog(), qui est une combinaison des trois autres méthodes.

Création d'une boîte de dialogue JOptionPane

importer javax.swing. JFrame ;
importer javax.swing. JOptionPane ;

PubliqueclasseJOptionPaneApp{
JOptionPaneApp() {
JFrame frame = Nouveau JFrame();
JOptionPane.showMessageDialog (frame, "Ceci est une fenêtre de message JOptionPane.");
}

Publiquestatiquevideprincipale(Chaîne [] arguments){
Nouveau JOptionPaneApp();
}
}

Le code ci-dessus crée la boîte de dialogue suivante :

Bien que JOptionPane fournisse des boîtes de dialogue standard, il dispose de nombreuses options vous permettant de modifier son comportement. Par exemple, la boîte de dialogue de message peut prendre l'un de plusieurs types. Celui ci-dessus est un exemple de INFORMATION_MESSAGE, qui est la valeur par défaut. Les autres types de messages sont :

  • MESSAGE D'ERREUR
  • MESSAGE D'ALERTE
  • QUESTION_MESSAGE
  • PLAIN_MESSAGE

Création d'un message d'erreur

Voici un exemple d'utilisation d'un type de message différent pour votre boîte de dialogue JOptionPane :

JOptionPane.showMessageDialog (frame, "Ceci est une fenêtre de message d'erreur JOptionPane.",
"Erreur", JOptionPane. MESSAGE D'ERREUR);

Remplace le showMessageDialog() ligne dans le programme d'origine avec la ligne de code ci-dessus, et vous verrez la boîte de dialogue d'erreur suivante :

La classe JDialog

La classe JDialog vous permet de créer des boîtes de dialogue personnalisées. Cette Classe Java appartient à la javax.swing package et étend la classe Dialog. Il a accès à une grande variété de méthodes directes et indirectes. Cette classe Java a un total de 16 Constructeurs Java.

Outre le constructeur par défaut, chacun des 15 autres prend un cadre, une fenêtre ou une boîte de dialogue avec une combinaison de plusieurs autres arguments.

Les principaux constructeurs JDialog incluent :

  • JDialogue() crée une boîte de dialogue sans cadre, titre ou mode.
  • JDialog (propriétaire de la boîte de dialogue, titre de la chaîne, modal booléen) crée une boîte de dialogue avec un propriétaire de boîte de dialogue, un titre de chaîne et un mode.
  • JDialog (propriétaire du cadre, titre de la chaîne, modal booléen) crée une boîte de dialogue avec un propriétaire de cadre, un titre de chaîne et un mode.
  • JDialog (propriétaire de la fenêtre, titre de la chaîne, modal booléen) crée une boîte de dialogue avec un propriétaire de fenêtre, un titre de chaîne et un mode.

Création d'une boîte de dialogue JDialog

importer java.awt. FlowLayout ;
importer java.awt.event. ActionEvent ;
importer java.awt.event. ActionListener ;
importer javax.swing. JButton ;
importer javax.swing. JDialog ;
importer javax.swing. JFrame ;
importer javax.swing. JLabel ;
importer javax.swing. FenêtreConstantes ;

PubliqueclasseJDialogApp{
JDialogApp() {
JFrame frame = Nouveau JFrame();
Boîte de dialogue JDialog = Nouveau JDialog (cadre, vrai);
dialog.setLayout(Nouveau FlowLayout());

JLabel displayText = Nouveau JLabel("Ceci est une fenêtre JDialog.");
JButton btn = Nouveau JButton("OK");

btn.addActionListener(Nouveau ActionÉcouteur() {
PubliquevideactionEffectuée(ActionÉvénement e){
dialog.setVisible(faux);
}
});

dialog.add (displayText);
dialog.add (btn);

dialog.setSize(200,150);
dialog.setTitle("Fenêtre de dialogue");
dialog.setVisible(vrai);
dialog.setDefaultCloseOperation (WindowConstants. DISPOSE_ON_CLOSE );
}

Publiquestatiquevideprincipale(arguments de chaîne []){
Nouveau JDialogApp();
}
}

Le code ci-dessus crée la boîte de dialogue suivante :

Il y a plusieurs aspects importants du code que vous devriez noter. Le programme utilise le JDialog (propriétaire du cadre, modal booléen) constructeur, auquel il passe un JFrame et la "vraie" valeur comme arguments. Le JFrame est le propriétaire du JDialog, ce qui signifie qu'il est responsable de l'affichage de la boîte de dialogue. La valeur "true" signifie que la boîte de dialogue bloque l'entrée dans d'autres fenêtres associées lorsqu'elle s'affiche.

Le constructeur dans le code ci-dessus ne prend pas de titre comme argument. Cependant, le propriétaire du cadre a besoin d'un titre. Donc, pour cette tâche, vous pouvez utiliser le définirTitre() , qui est disponible via la classe Dialog que JDialog étend. Les autres méthodes importantes du code sont setVisible(), définirTaille(), et setDefaultCloseOperation().

setVisible prend une valeur booléenne et est responsable de l'affichage du cadre. setSize prend la hauteur et la largeur de la fenêtre de dialogue. setDefaultCloseOperation prend l'une des trois valeurs pour décider de ce qui se passe lorsqu'un utilisateur ferme la boîte de dialogue.

La classe JFrame

JDialog et JOptionPane utilisent tous deux la classe JFrame pour créer des boîtes de dialogue. Cependant, la classe JFrame peut créer elle-même des boîtes de dialogue. La classe JFrame étend la classe Frame et, tout comme la classe JDialog, elle vous permet de créer des boîtes de dialogue personnalisées.

JFrame a quatre constructeurs et plusieurs méthodes directes et indirectes que vous devrez utiliser pour créer une boîte de dialogue.

Création d'une boîte de dialogue JFrame

importer java.awt.event. ActionEvent ;
importer java.awt.event. ActionListener ;

importer javax.swing. JButton ;
importer javax.swing. JFrame ;
importer javax.swing. JLabel ;
importer javax.swing. JPanel ;
importer javax.swing. FenêtreConstantes ;

PubliqueclasseJFrameApp{
JFrameApp() {
JFrame frame = Nouveau JFrame();
frame.setTitle("Fenêtre de dialogue");
Panneau JPanel = Nouveau JPanel();

JLabel displayText = Nouveau JLabel("Ceci est une fenêtre JFrame.");
panel.add (displayText);
JButton btn = Nouveau JButton("Bouton OK");

btn.addActionListener(Nouveau ActionÉcouteur() {
PubliquevideactionEffectuée(ActionÉvénement e){
frame.setVisible(faux);
}
});

panel.add (btn);

frame.add (panneau);
frame.setDefaultCloseOperation (WindowConstants. EXIT_ON_CLOSE );
frame.setSize(250, 150);
frame.setVisible(vrai);
}

Publiquestatiquevideprincipale(Chaîne [] arguments){
Nouveau JFrameApp();
}
}

Le code ci-dessus crée la boîte de dialogue suivante :

Le code utilise le constructeur JFrame par défaut et plusieurs méthodes familières, telles que le définirTitre() méthode (utilisée dans l'application JDialog ci-dessus). Un objet inconnu dans le programme ci-dessus est le JPanelComment, qui est un conteneur générique. Cela donne à JFrame la flexibilité d'ajouter plusieurs dispositions et composants à un cadre.

Le ActionListener() et actionPerformed() les méthodes gèrent l'événement d'un utilisateur cliquant sur le D'ACCORD bouton.

Quelle classe Java est la meilleure pour créer des boîtes de dialogue ?

Le seul but de la classe JOptionPane est de rendre le processus de création de boîte de dialogue plus pratique pour les développeurs Java. Cependant, si vous avez besoin d'une boîte de dialogue plus personnalisée, la classe JDialog est la meilleure option suivante.

La classe JFrame crée des interfaces utilisateur, mais vous pouvez l'utiliser pour créer de nombreux éléments différents d'une interface graphique, y compris des boîtes de dialogue.

La boîte de dialogue créée avec la classe JFrame a une icône réduite, contrairement aux autres. Si vous voulez une boîte de dialogue modale, que l'utilisateur doit actionner avant de terminer une tâche, alors JFrame n'est pas la meilleure approche.

Comment écrire votre première application graphique Java 

Lire la suite

PartagerTweeterPartagerE-mail

Rubriques connexes

  • Programmation
  • Programmation
  • Java
  • Tutoriels de codage

A propos de l'auteur

Kadeisha Kean (56 articles publiés)

Kadeisha Kean est un développeur de logiciels Full-Stack et un rédacteur technique/technologique. Elle a la capacité distincte de simplifier certains des concepts technologiques les plus complexes; produire du matériel facilement compréhensible par tout novice en technologie. Elle est passionnée par l'écriture, le développement de logiciels intéressants et le voyage à travers le monde (à travers des documentaires).

Plus de Kadeisha Kean

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner