Utilisation d'une fenêtre de dialogue pour poser une question et récupérer la réponse dans un bouton de choix déroulant.

     

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 "oui", "non", "moyen", "pas d'opinion", et ces réponses apparaissent dans un bouton de choix déroulant . Selon la réponse, l'action du programme est différente.

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.showInputDialog(...).

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 Dialogue4 extends JFrame implements ActionListener {
JButton bouton = new JButton("Voir la question");
JLabel label = new JLabel(" ");

public Dialogue4() {
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) {
String[] choix = {"oui", "non", "moyen", "pas d'opinion"};
Object reponse = JOptionPane.showInputDialog
(null,
"Etes-vous de bonne humeur ?",
"Boutons personnalises",
JOptionPane.QUESTION_MESSAGE,
null,
choix,
choix[0]);
if (reponse.equals("oui")) label.setText("Bravo !");
else if (reponse.equals("non")) label.setText("Courage !");
else if (reponse.equals("moyen")) label.setText("Perseverons !");
else if (reponse.equals("pas d'opinion")) label.setText("Blase(e) ?");
}
}
class EssaiDialogue4 {
public static void main(String[] arg) {
new Dialogue4();
}
}

Vous pouvez voir :

  • le code de l'application décrite ici.
  • le code de l'applet.
    Object reponse = JOptionPane.showInputDialog(null, "Etes-vous de bonne humeur ?", "Boutons personnalises", JOptionPane.QUESTION_MESSAGE, null, choix, choix[0]); : on obtient, avec cette méthode statique, une fenêtre de dialogue pour poser une question. La valeur de retour, de type Object, donne le choix effectué.

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