Une fenêtre de dialogue pour choisir une couleur : JColorChooser.

     

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.

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 :

  • le code de l'application décrite ici.
  • le code de l'applet.
    Color couleur = JColorChooser.showDialog(null, "couleur du fond", Color.WHITE); : cette instruction fait apparître la fenêtre qui permet de choisir une couleur. Le premier paramètre indique la fenêparent devant laquelle la fenêtre de choix de couleur apparaîtra ; si ce paramètre vaut null, la fenêtre apparaît au centre de l'écran. le second paramètre donne le titre à la fenêtre de choix de couleur.

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