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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
TableColumn col = table.getColumnModel().getColumn(1);
col.setCellRenderer(new JTableRenderer());
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
		}
 
 
	};