Probleme couleur de lignes dans un JTable

Signaler
Messages postés
106
Date d'inscription
dimanche 19 mars 2006
Statut
Membre
Dernière intervention
17 janvier 2007
-
Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
-
Bonjour,
J'ai poster avant dans javafr pour le meme probleme que j'ai, bon j'ai consulter les reponse mais je suis pas arriver a resoudre mon probleme, en faite j'ai pas pu adapter ce que j'ai trouver sur ce site a mon cas.
Ce que je veu faire en faite c'est modifier la couleur du foreground ou background de certaines ligne de mon JTable.
J'ai essayer d'adapter un code trouver dans votre site mais bon le code marche(il change uniquement le font de la ligne selectionner).
Moi ce que j'aimerai bien faire c'est changer le font des lignes de 0 a la 30ieme ligne(par exemple). Voici mon code actuelle quel modification je doit faire pour effectuer les changement que je veux :

public static void ajout2(String a1, String a2, String a4, String a5, String a6){
    Object[] vals = {a1,a2, a4,a5,a6};
    model.insertRow(0,vals);// permet l'ajout depuis la 1ere ligne de mon tableau
  }
public static void ajout(){
    annonce.setFont(new java.awt.Font("Dialog", 0, 15));
    annonce.setDebugGraphicsOptions(0);
    //annonce.setToolTipText("fff");
    annonce.setModel(model);
      {
        model.addColumn("Time");
        model.addColumn("Description");
        //model.addColumn("Arsmodell");
        model.addColumn("Pris");
        model.addColumn("Location");
        model.addColumn("link");
      }
      annonce.getTableHeader().setReorderingAllowed( false );
      annonce.getTableHeader().setResizingAllowed(false);
      annonce.getTableHeader().setFont(new java.awt.Font("Dialog", 1, 17));
     /** TableCellRenderer tbc = getTableCellRenderer();
        TableCellRenderer tbch = getTableHeaderRenderer();
        for (int i = 0; i < model.getColumnCount(); i++)
       {
            TableColumn tc = annonce.getColumnModel().getColumn( i );

           tc.setCellRenderer( tbc );
            tc.setHeaderRenderer( tbch );
     }*//code essayer depuis JAVAFR.COM

  }
Donc voici mon code qui permet d'ajouter au debut du tableau tous les noveaux elements
Merci pour votre aide

3 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Il te faut définir ton propre CellRenderer, ce sera plus simple, et l'appliquer aux lignes que tu souhaite modifier, par exemple :
public class CRenderer implements TableCellRenderer {

    private static final long serialVersionUID = 1L;
    JTextField m_txtText;
   
    public CStringRenderer() {
        super();
        m_txtText = new JTextField();
       m_txtText.setBackGround(Color.RED);
    }

    public Component getTableCellRendererComponent(JTable arg0, Object arg1, boolean arg2, boolean arg3, int arg4, int arg5) {
        m_txtText.setText((String) arg1);
        return m_txtText;
    }

}
Messages postés
106
Date d'inscription
dimanche 19 mars 2006
Statut
Membre
Dernière intervention
17 janvier 2007

Bonjour,
Merci pour votre aide mais j'ai pas encore compris comment je modiferait le background ou lo foreground des lignes (de x a y) de mon tableau. ?Merci de me detailler un peut plus votre solution.
Merci
Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
Salut,

regarde dans la derniere source de [auteurdetail.aspx?ID=13557 DARKSIDIOUS]posté sur ce site traitant de JTable justement (tu chercherais un minimum (elle est affiché sur la parge d'acceuil))

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA