IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

[JTable] les couleurs des cellules ne comporte mal avec un tri


Sujet :

Composants Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 676
    Points : 121
    Points
    121
    Par défaut [JTable] les couleurs des cellules ne comporte mal avec un tri
    Bonjour,

    J'ai un jtable avec des cellules colorées déclaré comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    		DefaultTableModel dtmTableModel = new DefaultTableModel (donnees, titre){
    		    /**
                             * 
                             */
    			private static final long serialVersionUID = -6358524421117020523L;
     
    			public boolean isCellEditable(int iRowIndex, int iColumnIndex)
    		    {
    		          return true;
    		    }
     
     
    		  };
    		  JTable tableau=new JTable(dtmTableModel) {
    			  /**
                             * 
                             */
    			private static final long serialVersionUID = 5046089181408208395L;
     
    			public Component prepareRenderer(TableCellRenderer renderer, int row, int col) {
    				  Color[] colors = {new Color(208,219,242), new Color(219,238,243), new Color(218,223,224)};
    				  Component c = super.prepareRenderer(renderer, row, col);
    				  if(col==7)
    				  {
    					  Color coul=Fc.couleurICSHA(donnesEntree[row][7]);
    					  c.setBackground(coul);
    					  if(coul!=null) return c;
    				  }
    				  Color color = getBackground();
    				  if ( !isCellSelected(row, col)) {
    				  color = colors[row % colors.length];
    				  }
    				  else color = new Color(247,150,70);
    				  c.setBackground(color);
    				  return c;
    				  }
    		  };
    		  tableau.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    		  tableau.setAutoCreateRowSorter(true);
    		  tableau.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
     
    		  TableRowSorter sorter = new TableRowSorter<DefaultTableModel>(dtmTableModel);
    		  NumberComparator comparateurNombre = new NumberComparator();
    	      sorter.setComparator(3, comparateurNombre);
    		  NoteISCHAComparator comparateurNote = new NoteISCHAComparator();
    	      sorter.setComparator(7, comparateurNote);
    	      tableau.setRowSorter(sorter);
    Mon soucis est le suivant. Quand je crée le JTable, ça marche et les couleurs de la colonne 7 sont appliquées aux bonnes cellules. Mais quand je tri (en cliquant sur un header), les textes des cellules se déplacent en fonction du tri (normal) mais les couleurs restent à la même position et du coup les mauvaises cellules sont colorées.

    Comment régler ce soucis ?

    Merci pour votre aide

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 676
    Points : 121
    Points
    121
    Par défaut
    je me permet un petit up

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2011
    Messages : 214
    Points : 338
    Points
    338
    Par défaut
    Bonjour,

    Je suppose que ta méthode ton tableau "donnesEntree" n'est pas trié donc tu dois passer une mauvaise valuer à la méthode "couleurICSHA".

    Tu peux utiliser quelque chose comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Color coul=Fc.couleurICSHA(donnesEntree[convertRowIndexToModel(row)][7]);
    Mais ce n'est pas très élégant de surcharger "prepareRenderer" pour faire ça, le mieux serait de redéfinir un renderer et de le passer à "setDefaultRenderer"

Discussions similaires

  1. [POI] Problème avec les couleurs des cellules Excel
    Par ninoch07 dans le forum Documents
    Réponses: 1
    Dernier message: 15/01/2015, 14h14
  2. JTable et couleurs des cellules
    Par maxime_c dans le forum Composants
    Réponses: 7
    Dernier message: 17/03/2009, 09h48
  3. [JTable] Couleur des cellules
    Par eighty_three dans le forum Composants
    Réponses: 2
    Dernier message: 20/05/2008, 17h55
  4. [JTable] les noms des colonnes de s'affichent pas
    Par macben dans le forum Composants
    Réponses: 6
    Dernier message: 25/04/2008, 11h03
  5. couleur des cellules de JTable
    Par adil1251985 dans le forum Composants
    Réponses: 5
    Dernier message: 05/06/2007, 12h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo