JTable + couleur

blackbassexe Messages postés 3 Date d'inscription jeudi 7 juin 2012 Statut Membre Dernière intervention 14 juillet 2012 - 13 juil. 2012 à 08:41
uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 - 15 juil. 2012 à 07:43
bonjour a tous

voila depuis un bon moment deja je recherche comment mettre une ligne de ma jTable en couleur, mais le probleme c'est que ce n'est pas une regle fixe mais des parametres qui peuvent changer qui disent si la colonne doit etre rouge ou non

j'utilise ce modele pour mes jTables

        class MyDefaultTableModel extends DefaultTableModel{  
private List indexColEditable = new ArrayList();

public MyDefaultTableModel() {
super();
}
public MyDefaultTableModel(int rowCount, int columnCount) {
super(rowCount, columnCount);
}
public MyDefaultTableModel(Object[] columnNames, int rowCount) {
super(columnNames, rowCount);
}
public MyDefaultTableModel(Object[][] data, Object[] columnNames) {
super(data, columnNames);
}
public MyDefaultTableModel(Vector columnNames, int rowCount) {
super(columnNames, rowCount);
}
public MyDefaultTableModel(Vector data, Vector columnNames) {
super(data, columnNames);
}
        

@Override
public boolean isCellEditable(int row, int column) {
if(indexColEditable.contains(column)){
return true;
}else{
return false;
}
}

public void setIndexColEditable(List listColEditable){
if(listColEditable != null){
indexColEditable = listColEditable;
}else{
indexColEditable = new ArrayList();
}
}


}


et la regle est la suivante

do{


                    //parcourir les entrees de la jtable et extraire le TRS minimum
                    String valueAt = (String) jTable3.getValueAt(i, 15);
                    float trs = Float.parseFloat(valueAt);
                    String valueAt1 = (String) jTable3.getValueAt(i,1);
                    ResultSet executeQuery = statement2.executeQuery("SELECT * FROM dbo.taux WHERE nom_machine='"+valueAt1+"'");
                    executeQuery.first();
                    Float trsb = executeQuery.getFloat("trs_mini");
                    System.out.println(trsb);

                    i++;
                    
                    if (trsb<trs){
                        System.out.println(valueAt1+" TRS OK");
                    }
                    else {
                        System.out.println(valueAt1+" TRS non OK");
                        //afficher la ligne en rouge
                    }
                  
          }
        while (i<j);    
             
                
        }

3 réponses

Utilisateur anonyme
14 juil. 2012 à 13:01
Salut,

Regarde du côté des CellRenderer qui permettent de changer la couleur d'une cellule de ta JTable.


--
Pylouq
(Lire le Réglement n'a jamais tué personne, au pire ça a instruit des gens.)
[Vacances pour un petit moment]
0
blackbassexe Messages postés 3 Date d'inscription jeudi 7 juin 2012 Statut Membre Dernière intervention 14 juillet 2012
14 juil. 2012 à 19:01
oui j'ai aussi oublie de preciser que je regarde les codes de cell renderer depuis fevrier et j'y comprends vraiment rien...

c'est pas de la mauvaise foi mais l'objet c'est pas encore ca >_<

le probleme avec le cell renderer c'est que la regle doit etre codee auparavant alors que ici la regle est evolutive
0
uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 9
15 juil. 2012 à 07:43
La méthode getTableCellRendererComponent du CellRenderer est en fait très dynamique. Elle est appelée chaque fois qu'un changement arrive à la table (en cours de défilement, la sélection change, etc.).

André


Agréable, sain et relaxant: Marcher pied nus. Essayez simplement: Marchez pieds nus!
0
Rejoignez-nous