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

     

alt : l'applet n'est pas visible par votre navigateur ; pour voir l'application, vous devez télécharger le code, le compiler et l'exécuter
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