Probleme couleur de lignes dans un JTable

hlimaiem Messages postés 106 Date d'inscription dimanche 19 mars 2006 Statut Membre Dernière intervention 17 janvier 2007 - 16 sept. 2006 à 06:34
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 16 sept. 2006 à 16:30
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

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
16 sept. 2006 à 11:08
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;
    }

}
0
hlimaiem Messages postés 106 Date d'inscription dimanche 19 mars 2006 Statut Membre Dernière intervention 17 janvier 2007
16 sept. 2006 à 16:23
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
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
16 sept. 2006 à 16:30
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
0
Rejoignez-nous