Files
SAE-PAPILLON/src/fr/iutfbleau/papillon/CouleurList.java
T
2025-10-26 22:40:26 +01:00

61 lines
2.0 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package fr.iutfbleau.papillon;
import javax.swing.*;
import java.awt.*;
/**
* La classe <code>CouleurList</code> permet dafficher des couleurs
* associées à des thèmes dans les listes déroulantes de lapplication <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 laffichage des éléments dans la liste déroulante.
*
* @param list la liste affichant les éléments
* @param value l’élément à afficher
* @param index lindice 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 laffichage 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;
}
}