JOptionPane: Dialogue de saisie showInputDialog

La classe JOptionPane fournit plusieurs types de boites de dialogue et parmi eux, on trouve la boite de dialogue de saisie qui permet la saisie des données.

La méthode showInputDialog de la classe JOptionPane permet de saisir une chaîne de caractères ou de choisir parmi une liste JComboBox. Le retour de l'appel de cette fonction est une chaîne de caractères saisie ou un une instance de Object si vous utilisez un JComboBox, sinon null dans le cas ou la saisie des données n'est pas valide.

L'affichage du message de dialogue par la classe java.swing.JOptionPane est fournit par la méthode:

String reponse = showInputDialog(component, message, titre, type);
  • Component: est la fenetre ou l'objet de type Component appelant;
  • message: le message à afficher;
  • titre: le titre de la boite de dialogue;
  • type: est le type de message de JOptionPane:
    • ERROR_MESSAGE
    • PLAIN_MESSAGE
    • WARNING_MESSAGE
    • QUESTION_MESSAGE
    • INFORMATION_MESSAGE
  • reponse: la valeur retournée.
Voici un exemple simple pour tester la méthode showInputDialog():

import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class Inputdialog {

public static void main(String[] args) {
JFrame frame = new JFrame("");
String retour = JOptionPane.showInputDialog(
frame, "Entrez votre nom","Boite de dialogue",
JOptionPane.PLAIN_MESSAGE);
System.exit(0);
}
}
Sortie
JOptionPane showInputDialog

JOptionPane avec un JComboBox

Une autre méthode nous permet de créer une Boite de dialogue contenant une boite combinée de choix JComboBox avec showInputDialog:

Object objet = showInputDialog(Component parent,
                     Object message,
                     String titre,
                     int typeMessage,
                     Icon icon,                    // insérer une ImageIcon
                     Object[] selection,      // la sélection de valeurs sous forme d'un tableau de type Object
                     Object valeurInitiale) // l'objet initiale qui va être affiché

import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class Inputdialog {

public static void main(String[] args) {
JFrame frame = new JFrame("");

Object[] selection = {1,2,3,4,5,6};
String retour = (String) JOptionPane.showInputDialog(
frame, "Choisissez un indice",
"Boite de dialogue",
JOptionPane.QUESTION_MESSAGE,
null, selection, selection[0]);
System.exit(0);
}
}
Exécution:
JOptionPane showInputDialog JComboBox

Dans cet exemple, le type de message est un QUESTION_MESSAGE donc, le logo sous forme d'un point d'exclamation s'affiche par défaut.
On a fait un cast (String) parce que la méthode retourne un Object.

Ajouter un icone dans showInputDialog

Dans l'exemple précédent, on a mis null au lieu de créer une ImageIcon qui s'affiche à la place de l'icone par défaut. Ce code remplace null par la variable icon:

ImageIcon icon = new ImageIcon("question.png");
Object[] selection = {1,2,3,4,5,6};
String retour = (String) JOptionPane.showInputDialog(frame, "Choisissez un indice",
"Boite de dialogue",JOptionPane.QUESTION_MESSAGE,
icon, selection, selection[0]);
Exécution:
inserer un icone showInputDialog

Références:
upmf-grenoble: Swing : JOptionPane
Java doc: showInputDialog method