noussa1985
Messages postés31Date d'inscriptionjeudi 14 juin 2007StatutMembreDernière intervention20 avril 2008
-
11 avril 2008 à 00:36
Utilisateur anonyme -
11 avril 2008 à 07:03
Bonsoir tou le monde,
SVP j'ai besoin de votre aide,
j'ai déja créé un JTable mais je veux modifier la couleur du contenu d'une cellule en specifiant le n° de la ligne le n° de la colonne.
merci pour votre aide
Tu pourrais quand même farfouiller un peu plus dans les tutoriaux de Sun et dans la documentation Java avant de poser ce genre de questions. Soit tu crées ton propre "renderer" et tu lui passes les coordonnées des cellules et les couleurs à effectuer, dans la méthode getTableCellRenderer(...), tu fais un appel à super.getTableCellRenderer(...) puis tu fais un setBackground(Color c) sur le JLabel que tu récupères; soit tu crées ton composant maison qui contient une chaîne de caractère et ta couleur et tu modifies ton "renderer" dans la même méthode de façon à ce qu'il aille chercher la couleur dans ton nouveau composant pour m'appliquer, ça évite de devoir passer les coordonnées et les couleurs à affecter (c'est plus propre de faire comme ça). N'oublie pas associer à ta table ton nouveau "renderer".
Un exemple :
public final class MyDefaultTableCellRenderer extends DefaultTableCellRenderer{
final Component getTableCellRenderer(JTable table, Object object , boolean isSelected, boolean hasFocus, int row, int column){
JLabel label = super.getTableCellRenderer(table,object,isSelected,hasFocus,row,column);
//tous tes objets de ton modèle doivent être des instances de cette classe
//sinon tu auras une ClassCastException, ou alors utilise instanceof et prévois un autre cas
MyNewClass myObject = (MyNewClass) object;
label.setText( myObject.getText() );
label.setBackground(myObject.getBackground() );
return(label);
}