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 :