61 lines
2.0 KiB
Java
61 lines
2.0 KiB
Java
|
|
package fr.iutfbleau.papillon;
|
|||
|
|
|
|||
|
|
import javax.swing.*;
|
|||
|
|
import java.awt.*;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* La classe <code>CouleurList</code> permet d’afficher des couleurs
|
|||
|
|
* associées à des thèmes dans les listes déroulantes de l’application <b>Papillon</b>.
|
|||
|
|
* <p>
|
|||
|
|
* Elle agit comme un <b>renderer</b> personnalisé, affichant un petit carré coloré
|
|||
|
|
* à côté du nom du thème.
|
|||
|
|
* </p>
|
|||
|
|
*
|
|||
|
|
* @version 1.0
|
|||
|
|
* @author Seri-khane YOLOU, Aylane SEHL, Jenson VAL
|
|||
|
|
*/
|
|||
|
|
public class CouleurList extends DefaultListCellRenderer {
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Renvoie la couleur correspondant au nom affiché dans le menu déroulant.
|
|||
|
|
*
|
|||
|
|
* @param nom le nom du thème (ex. : "Bleu", "Rouge", "Vert", etc.)
|
|||
|
|
* @return la couleur associée au thème, ou blanc par défaut
|
|||
|
|
*/
|
|||
|
|
public Color couleurDe(String nom) {
|
|||
|
|
switch (nom) {
|
|||
|
|
case "Bleu": return Color.CYAN;
|
|||
|
|
case "Rouge": return Color.RED;
|
|||
|
|
case "Vert": return Color.GREEN;
|
|||
|
|
case "Jaune": return Color.YELLOW;
|
|||
|
|
case "Rose": return Color.PINK;
|
|||
|
|
default: return Color.WHITE;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Personnalise l’affichage des éléments dans la liste déroulante.
|
|||
|
|
*
|
|||
|
|
* @param list la liste affichant les éléments
|
|||
|
|
* @param value l’élément à afficher
|
|||
|
|
* @param index l’indice de l’élément dans la liste
|
|||
|
|
* @param isSelected indique si l’élément est sélectionné
|
|||
|
|
* @param cellHasFocus indique si l’élément a le focus
|
|||
|
|
* @return le composant personnalisé pour l’affichage de l’élément
|
|||
|
|
*/
|
|||
|
|
@Override
|
|||
|
|
public JLabel getListCellRendererComponent(JList list, Object value, int index,boolean isSelected, boolean cellHasFocus) {
|
|||
|
|
|
|||
|
|
JLabel lbl = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
|
|||
|
|
|
|||
|
|
if (value != null) {
|
|||
|
|
String nom = value.toString();
|
|||
|
|
lbl.setIcon(new ColorIcon(couleurDe(nom), 14, 14));
|
|||
|
|
lbl.setIconTextGap(8); // petit espace entre le carré et le texte
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return lbl;
|
|||
|
|
}
|
|||
|
|
}
|