Vous pourrez choisir une couleur qui deviendra la couleur de fond du panneau qui se trouve en-dessous du bouton.
Tant que la fenêtre pour choisir la couleur n'est pas fermée, l'application est bloquée : la fenêtre de choix de couleur est modale.
On utilise ici la méthode JOptionPane.showInputDialog(...).
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import java.awt.Dimension;
import java.awt.Color;
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Couleurs extends JFrame implements ActionListener {
JPanel panneau = new JPanel();
public Couleurs() {
JButton bouton = new JButton("choix de la couleur");
panneau.setPreferredSize(new Dimension(200, 200));
add(bouton, BorderLayout.NORTH);
add(panneau, BorderLayout.SOUTH);
bouton.addActionListener(this);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocation(100, 100);
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent evt) {
Color couleur = JColorChooser.showDialog
(null, "couleur du fond", Color.WHITE);
panneau.setBackground(couleur);
}
}
class EssaiCouleurs {
public static void main(String[] arg) {
new Couleurs();
}
}
Vous pouvez voir :