Création interface graphique avec Swing : les bases


précédentsommairesuivant

8. Utiliser des boîtes de dialogue avec JOptionPane

Dans les composants Swing, il existe un composant très intéressant, le JOptionPane qui possède plusieurs méthodes statiques permettant d'ouvrir d'afficher diverses boîtes de dialogue :

  • Les boîtes de messages, ces boîtes de dialogue permettent d'afficher un message pour l'utilisateur.
  • Les boîtes de saisie, avec cette boite de dialogue, on va pouvoir demander une chaîne de caractères à l'utilisateur
  • Les boites de confirmation, avec ces boîtes de dialogues, on peut demander une confirmation à l'utilisateur.
  • Les boîtes de choix, qui permettent de donner le choix entre plusieurs choses, une liste déroulante en quelque sorte

Pour utiliser ces différentes boîtes de dialogue, on va maintenant recréer une calculatrice mais sans interface graphique, uniquement avec des boîtes de dialogue.

Voilà donc ce qui va se passer dans notre programme :

  1. on va demander le premier nombre à l'utilisateur
  2. On va demander un deuxième nombre à l'utilisateur
  3. On va demander l'opérateur à l'utilisateur
  4. On va afficher le résultat de l'addition de ces 2 nombres
  5. On va demander à l'utilisateur s'il a apprécié ce programme
  6. En fonction de sa réponse, on va afficher un message.
 
Sélectionnez
public class CalculatriceDialogue {
	public static void main(String[] args){
		double resultat = 0;
 
		double nombre1 = Double.parseDouble(JOptionPane.showInputDialog(null, "Entrez un premier nombre")) ;
 
		double nombre2 = Double.parseDouble(JOptionPane.showInputDialog(null, "Entrez un second nombre")) ;
 
		String[] operateurs = new String[]{"+","-","*","/"};
 
		String operateur = (String)JOptionPane.showInputDialog(null,"Choississez un opérateur",
			"Opérateur",JOptionPane.QUESTION_MESSAGE, null, operateurs, operateurs[0]);
 
		if("+".equals(operateur)){
			resultat = nombre1 + nombre2;
		}
		else if ("-".equals(operateur)){
			resultat = nombre1 - nombre2;
		}
		else if ("*".equals(operateur)){
			resultat = nombre1 * nombre2; 
		}
		else if ("/".equals(operateur)){
			resultat = nombre1 / nombre2; 
		}
 
		JOptionPane.showMessageDialog(null, nombre1 + " " + operateur + " " + nombre2 + " = " + resultat);
 
		int reponse = JOptionPane.showConfirmDialog(null, "Êtes-vous content de ce programme ?", 
			"Satisfaction", JOptionPane.YES_NO_OPTION);
 
		if(reponse == JOptionPane.YES_OPTION){
			JOptionPane.showMessageDialog(null, "Cool :) A la prochaine") ;
		}else if(reponse == JOptionPane.NO_OPTION){
			JOptionPane.showMessageDialog(null, "Dommage :( Peut-être trouverez-vous votre bonheur" +  
				" dans les futurs programmes que je vais développer") ;
		}
	}
}
Demande de texte à l'utilisateur
Demande de texte à l'utilisateur
Proposition de choix à l'utilisateur
Proposition de choix à l'utilisateur
Envoyer un message à l'utilisateur
Envoyer un message à l'utilisateur


Dans cet exemple-là, on employait seulement des boites de dialogue, mais c'est très rare, les boîtes de dialogue sont plutôt faites pour seconder l'interface graphique. Vous pouvez employer ces boîtes de dialogue exactement de la même manière dans une interface graphique que dans cet exemple.

On peut aussi afficher des messages avec des icônes spéciales (warning, error) avec la syntaxe suivante :

 
Sélectionnez
showMessageDialog(parentComponent, message, title, messageType) 

Par exemple, avec la propriété JOptionPane.ERROR_MESSAGE comme type de message, on obtient une boîte de dialogue de ce type :

Message d'erreur
Message d'erreur

Code complet : CalculatriceDialogue


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 Baptiste Wicht. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.