Avec la fenêtre de dialogue, les réponses possibles sont "oui", "non", "moyen", "pas d'opinion". 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.showOptionDialog(...).
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 Dialogue3 extends JFrame implements ActionListener {
JButton bouton = new JButton("Voir la question");
JLabel label = new JLabel(" ");
public Dialogue3() {
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"};
int reponse = JOptionPane.showOptionDialog
(null,
"Etes-vous de bonne humeur ?",
"Boutons personnalises",
JOptionPane.DEFAULT_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
choix,
choix[0]);
switch(reponse) {
case 0 : label.setText("Bravo !");
break;
case 1 : label.setText("Courage !");
break;
case 2 : label.setText("Perseverons !");
break;
case 3 : label.setText("Blase(e) ?");
break;
}
}
}
class EssaiDialogue3 {
public static void main(String[] arg) {
new Dialogue3();
}
}
Vous pouvez voir :
© Irène Charon, Télécom ParisTech 2011