Colorier Ligne JTable

dammex Messages postés 31 Date d'inscription jeudi 22 juillet 2010 Statut Membre Dernière intervention 14 février 2017 - 27 juil. 2010 à 00:47
dammex Messages postés 31 Date d'inscription jeudi 22 juillet 2010 Statut Membre Dernière intervention 14 février 2017 - 19 août 2010 à 23:40
Bonjour,

je souhaite afficher d'une couleur rouge tout une ligne d'un Jtable.
Pour cela j'ai dans une classe écrit la méthode suivante:

public static void ColorMyTable(JTable table) {

DefaultTableCellRenderer ColorTable = new DefaultTableCellRenderer();
ColorTable.setBackground(Color.red);

for (int i = 0 ; i < table.getRowCount() ; i++) {

int HardDiskTOTAL = Integer.parseInt((String) table.getValueAt(i,6));
int HardDiskFREE = Integer.parseInt((String) table.getValueAt(i,7));

if (HardDiskFREE < HardDiskTOTAL) {
table.getColumnModel().getColumn(i).setCellRenderer(ColorTable);
}
}
}

Comme vous le voyez, je colore en réalité toutes les colonnes et non une seule ligne. J'ai cherché sur de nombreux forums mais je n'ai pas réussi à trouver l'équivalent afin de colorier une ligne.

La ligne fausse est:
table.getColumnModel().getColumn(i).setCellRenderer(ColorTable);

j'ai une idée mais j'ai pas réussi à la mettre en place. L'idée est de se "mettre" à l'index de ligne désirée et ensuite de colorier le fond avec un setBackground... mais pour le moment, çà ne fonctionne pas.

Si quelqu'un a une idée...

PS: je fais appel à cette méthode dans une autre classe en écrivant:
MyPersonalTable.ColorMyTable(Results.jTable1); où MyPersonalTable est le nom de ma classe.

8 réponses

dammex Messages postés 31 Date d'inscription jeudi 22 juillet 2010 Statut Membre Dernière intervention 14 février 2017 1
28 juil. 2010 à 18:26
Personne n'a d'idée?

J'ai continué à chercher de mon côté comment modifier cette ligne pour assigner le colonnes et non les lignes mais je n'ai pas encore réussi à trouver quelque chose qui fonctionne.

Toute aide est la bienvenu...
0
dammex Messages postés 31 Date d'inscription jeudi 22 juillet 2010 Statut Membre Dernière intervention 14 février 2017 1
29 juil. 2010 à 06:07
S'il vous plaît..
Quand ce détail fontionnera, j'aurais quasi terminer mon application java .
Alors j'aimerais bien résoudre ce problème avec vous.

Merci d'avance
0
dammex Messages postés 31 Date d'inscription jeudi 22 juillet 2010 Statut Membre Dernière intervention 14 février 2017 1
29 juil. 2010 à 22:33
J'ai essayé autre chose pour parvenir à ce que je voudrais.
J'ai créé les deux méthodes suivantes:

public static void ColorMyTable (JTable table) {

for (int i = 0 ; i < table.getRowCount() ; i++) {

int HardDiskTOTAL = Integer.parseInt((String) table.getValueAt(i,6));
int HardDiskFREE = Integer.parseInt((String) table.getValueAt(i,7));

if (HardDiskFREE < HardDiskTOTAL * 0.1) {
Component test = getTableCellRendererComponent(table, i);
}
}
}


public static Component getTableCellRendererComponent(JTable table, int row) {

Component comp = getTableCellRendererComponent(table, row);

comp.setBackground(Color.red);

return getTableCellRendererComponent(table, row);
}


Ensuite, à partir d'une autre classe je tape
MyPersonnal.ColorMyTable(jTable1);

Mais j'ai une erreur :
Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError.

De l'aide, j'ai beau me creusé, j'arrive pas à un résultat.
0
William44290 Messages postés 15 Date d'inscription vendredi 20 février 2009 Statut Membre Dernière intervention 30 avril 2011
30 juil. 2010 à 14:10
Il convient de créer ton propre cellRenderer.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dammex Messages postés 31 Date d'inscription jeudi 22 juillet 2010 Statut Membre Dernière intervention 14 février 2017 1
1 août 2010 à 19:53
Créer mon propre cellRenderer...
Ok j'y avais pensé, et j'ai même tenté mais j'ai pas réussi à faire quelque chose de correcte.

Toujours en recherche...
Un conseil William44290?
0
William44290 Messages postés 15 Date d'inscription vendredi 20 février 2009 Statut Membre Dernière intervention 30 avril 2011
1 août 2010 à 20:13
j'ai mis en ligne un code source sur la gestion de calendrier, il doit y avoir ce que tu cherches dans les sources.
0
dammex Messages postés 31 Date d'inscription jeudi 22 juillet 2010 Statut Membre Dernière intervention 14 février 2017 1
1 août 2010 à 20:22
Ok je regarde çà de suite.
0
dammex Messages postés 31 Date d'inscription jeudi 22 juillet 2010 Statut Membre Dernière intervention 14 février 2017 1
19 août 2010 à 23:40
Alors, j'ai essayé de trafficoter un peu ton code, mais j'ai pas encore réussi.
Si tu pouvais m'aider un peu plus...

merci pour ton aide
0
Rejoignez-nous