Bonjour,


J ai un tableau contenant 50 lignes et 8 colonnes. J aimerai pouvoir changer la couleur des cellules de maniere dynamique en fonction d'un test.

Si Test Ok -> cellule verte
Si test NoOk ->Cellule Rouge

Pour ce faire j ai créé un Renderer pour mon Jtable dont voici le 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
public class MyTableCellRenderer extends DefaultTableCellRenderer implements TableCellRenderer {
 
private static final long serialVersionUID = 1L;
public boolean changeColors = false;
public CApplication t=null;
 
public MyTableCellRenderer() {
     super();
     setOpaque(true);
   }
 
   public Component getTableCellRendererComponent(JTable table,
		   Object value, boolean isSelected,
		   boolean hasFocus, int row, int column) 
   {
	    Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
 
	    	 setBackground(Color.GREEN);
	      return c;  
   }
 
 }

Les test sont effectués dans une autre classe : ( CApplication)



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
public void detecter_evt(CControle_agent_snmp poste, int row)
{
	if(poste.getCourant_sortie()>=90 && poste.getChangeis()==1) // si la charge de l onduleur est superieur a 90%
	{
 
		// mettre cellule de la ligne "row" en rouge
		signaler_defaut(1);
	}
	else if( poste.getMode()==true && poste.getChangetat()==1) // si l onduleur passe en mode batterie
	{
		signaler_defaut(2);
	}
	else if ( poste.getMode()==false && poste.getChangetat()==1) // si l onduleur passe en mode secteur
	{
		signaler_defaut(3);
	}
	else if (poste.isArretposte()==true && poste.getChangearret()==1) // si l onduleur va arreter le poste
	{
		signaler_defaut(4);
	}
}
A partir de là je suis bloqué. Suis-je parti sur la bonne solution? Comment procéder pour la suite?

Merci de votre aide