[Swing] Modifier la couleur d'une cellule de JTable
Salut à tous,
Voilà mon problème, j'essaie de faire en sorte qu'à chaque fois que l'utilisateur clique sur un JLabel, la deuxième colonne de la ième ligne de JTable se met à jour en modifiant sa couleur de fond avec la couleur de fond du JLabel.
Pour cela, j'ai crée mon propre Renderer que j'ai affecté à la colonne en question.
Le problème est que je ne sais pas comment "déclencher" le renderer dans le listener du JLabel.
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
import java.awt.Component;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
public class JTableRenderer extends DefaultTableCellRenderer {
/**
*
*/
private static final long serialVersionUID = -717160837108350092L;
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component component = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
JLabel label = (JLabel) component;
component.setBackground(label.getBackground());
return component;
}
} |
Code:
1 2 3
|
TableColumn col = table.getColumnModel().getColumn(1);
col.setCellRenderer(new JTableRenderer()); |
Code:
1 2 3 4 5 6 7 8 9 10 11
|
private MouseListener setColorAction = new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent evt) {
JLabel label = (JLabel) evt.getSource();
//je souhaiterais déclencher le renderer ici afin de modifier la cellule de la JTable
}
}; |