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 :