[JTable][CellRenderer] couleur d"une ligne sélectionnée
Bonjour,
J'utilise une JTable avec des colonnes pour lesquelles j'ai eu besoin de redéfinir le CellRenderer (notamment pour centrer les valeurs).
Le problème, c'est que une fois redéfini mon TableCellRenderer, je perds la couleur bleu foncé (dont je ne connais pas la valeur RVB au passage :wink: ) sur la cellule sélectionnée.
Je souuhaite donc réimplémenter cette couleur sur toute la ligne sélectionnée.
Comment dois-je m'y prendre ? J'ai essayé avec setBackground() dans mon renderer mais tout ce que j'obtient c'est de colorer toutes les cases de la table qui utilisent ce renderer.
Merci de votre aide,
ced
Re: [JTable][CellRenderer] couleur d"une ligne sélectio
Citation:
Envoyé par ced
Bonjour,
J'utilise une JTable avec des colonnes pour lesquelles j'ai eu besoin de redéfinir le CellRenderer (notamment pour centrer les valeurs).
Le problème, c'est que une fois redéfini mon TableCellRenderer, je perds la couleur bleu foncé (dont je ne connais pas la valeur RVB au passage :wink: ) sur la cellule sélectionnée.
Je souuhaite donc réimplémenter cette couleur sur toute la ligne sélectionnée.
Comment dois-je m'y prendre ? J'ai essayé avec setBackground() dans mon renderer mais tout ce que j'obtient c'est de colorer toutes les cases de la table qui utilisent ce renderer.
Merci de votre aide,
ced
En fait la première solution était presque la bonne...
il faut faire un setBackground() dans ton renderer que si la ligne est sélectionnée:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| class LeftRenderer extends JLabel implements TableCellRenderer {
public LeftRenderer() {
super();
}
public Component getTableCellRendererComponent(JTable table, Object, value, boolean isSelected, boolean hasFocus, int row, int column) {
setText(" " + value.toString());
setHorizontalAlignment(LEFT);
setOpaque(true);
if (isSelected)
setBackground(Color.BLUE);
return(this);
}
} |
Je te conseille aussi d'utiliser javax.swing.table.DefaultTableCellRenderer plutot qu'un TableCellRenderer dans ton cas... (DefaultTableCellRenderer correspond a un JLabel qui implemente TableCellRenderer et quelque methodes...)
pour la couleur de la selection, je pense que tu peux la recuperer en faisant un maJTable.getSelectionBackground()...
nota: La fonction setSelectionBackground() n'a aucun effet si un CellRenderer est utilisé...
a++