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)
A partir de là je suis bloqué. Suis-je parti sur la bonne solution? Comment procéder pour la suite?
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); } }
Merci de votre aide
Partager