Utilisation d'une fenêtre de dialogue pour poser une question et récupérer la réponse parmi YES, NO et CANCEL.

     

alt : l'applet n'est pas visible par votre navigateur (dans le menu Outils, Modules complémentaires, activer le plugin Java(TM) Platform SE 6 U32 6.0.320.5 s'il est désactivé)
Appuyer sur le bouton de cette applet.

Avec la fenêtre de dialogue, les réponses possibles sont uniquement ici YES, NO ou CANCEL (on pourrait aussi choisir de n'avoir que YES et NO). Nous verrons dans le prochain exemple comment avoir choisir les réponses possibles, mais pas nécessairement celles-ci.

Tant que la fenêtre avec la question n'est pas fermée, l'application est bloquée : la fenêtre de dialogue est modale.

On utilise ici la méthode JOptionPane.showConfirmDialog(...).

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JButton;
import javax.swing.JLabel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.BorderLayout;

public class Dialogue2 extends JFrame implements ActionListener {
JButton bouton = new JButton("Voir question");
JLabel label = new JLabel(" ");

public Dialogue2() {
add(bouton, BorderLayout.NORTH);
add(label, BorderLayout.SOUTH);
bouton.addActionListener(this);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocation(100, 100);
pack();
setVisible(true);
}

public void actionPerformed(ActionEvent evt) {
int reponse = JOptionPane.showConfirmDialog(null,
"Etes-vous de bonne humeur ?",
"Etiquettes Java",
JOptionPane.YES_NO_CANCEL_OPTION);
if (reponse == JOptionPane.YES_OPTION) label.setText("Bravo!");
else if (reponse == JOptionPane.NO_OPTION) label.setText("Courage!");
else label.setText("ni l'un ni l'autre ?");
}
}

class EssaiDialogue1 {
public static void main(String[] arg) {
new Dialogue1();
}
}

Vous pouvez voir :

  • le code de l'application décrite ici.
  • le code de l'applet.
    int reponse = JOptionPane.showConfirmDialog(null, "Etes-vous de bonne humeur ?", "Etiquettes Java", JOptionPane.YES_NO_CANCEL_OPTION); : on obtient, avec cette méthode statique, une fenêtre de dialogue pour poser une question. Le premier paramètre indique la fenêtre "parent" ; si ce paramètre vaut null, la fenêtre de dialogue apparaît au milieu de l'écran. Le second paramètre donne la question ; le troisième paramètre donne le titre de la fenêtre de dialogue ; le quatrième paramètre indique la possibilité des trois réponses YES, NO et CANCEL, on pourrait aussi JOptionPane.YES_NO pour ce paramètre. D'autres jeux de paramètres sont disponibles pour la méthode showConfirmDialog. On récupère la réponse au moment où on répond à la question, et donc au moment où la fenêtre de dialogue est fermée.

    © Irène Charon, Télécom ParisTech 2011