import javax.swing.JFrame; import javax.swing.JList; import javax.swing.JScrollPane; import javax.swing.JPanel; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Color; import java.awt.Graphics; import java.util.Vector; public class FenetreListeBis extends JFrame implements ListSelectionListener { Ardoise ardoise = new Ardoise(); JList liste; public FenetreListeBis() { JScrollPane listeAvecAscenseur; Vector choix = new Vector(); choix.add(Couleur.VERT); choix.add(Couleur.ROUGE); choix.add(Couleur.BLEU); choix.add(Couleur.JAUNE); liste = new JList(choix); liste.setSelectedIndex(0); ardoise.setCouleur((Couleur)liste.getSelectedValue()); liste.addListSelectionListener(this); listeAvecAscenseur = new JScrollPane(liste); listeAvecAscenseur.setPreferredSize(new Dimension(80, 70)); setLayout(new FlowLayout()); add(ardoise); add(listeAvecAscenseur); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); pack(); setLocation(200, 200); setVisible(true); } public void valueChanged(ListSelectionEvent evt) { ardoise.setCouleur((Couleur)liste.getSelectedValue()); ardoise.repaint(); } } class EssaiFenetreListeBis { public static void main(String[] arg) { new FenetreListeBis(); } } class Couleur extends Color { static final Couleur VERT = new Couleur(0, 255, 0); static final Couleur ROUGE = new Couleur(255, 0, 0); static final Couleur BLEU = new Couleur(0, 0, 255); static final Couleur JAUNE = new Couleur(255, 255, 0); Couleur(int r, int v, int b) { super(r, v, b); } public String toString() { if (equals(VERT)) return "vert"; if (equals(ROUGE)) return "rouge"; if (equals(BLEU)) return "bleu"; if (equals(JAUNE)) return "jaune"; return super.toString(); } }