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 :

Probleme de couleur ds JTable ou JTreeTable


Sujet :

Composants Java

  1. #1
    Membre actif Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Points : 209
    Points
    209
    Par défaut Probleme de couleur ds JTable ou JTreeTable
    bonjour,

    je veux colorier des lignes donné de ma JXTreeTable,

    pour cela g redéfini la méthode getTableCellRendererComponent(JTable table, Object color,boolean isSelected, boolean hasFocus, int row, int column) de la maniere suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public Component getTableCellRendererComponent(JTable table, Object color,
    			boolean isSelected, boolean hasFocus, int row, int column) {
     
    		super.getTableCellRendererComponent(table, color, isSelected, hasFocus,
    				row, column);
     
    			setBackground(/*Color.red*/((ComponentTreeNode)((JXTreeTable)table).getPathForRow(row).getLastPathComponent()).getColor());
     
     
    		return this;
    	}
    le probleme est que la couleur spécifié pour chaque ligne n'est visible que si la ligne est selectionné.... comment faire pour que la ligne soit tout le temps colorier??
    il réagit comme si j'avai mis la condition isSelected pour que ce soit colorier pourtant je ne l'ai pas mis....

    merci d'avance

  2. #2
    Membre actif Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Points : 209
    Points
    209
    Par défaut
    personne n'a d'idées??

  3. #3
    Membre actif Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Points : 209
    Points
    209
    Par défaut
    je reformule...

    pourquoi le code si dessous réagit comme si je voulai colorier les lignes selectionnées alors que je ve colorier toutes les lignes d'une couleur spécifiques?



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	public Component getTableCellRendererComponent(JTable table, Object color,
    			boolean isSelected, boolean hasFocus, int row, int column) 
    	{
     
    		super.getTableCellRendererComponent(table, color, isSelected, hasFocus,
    				row, column);
     
    		System.out.println(((ComponentTreeNode)((JXTreeTable)table).getPathForRow(row).getLastPathComponent()).getColor());
    		Color co = /*Color.red*/(((ComponentTreeNode)((JXTreeTable)table).getPathForRow(row).getLastPathComponent()).getColor());		
    		setOpaque(true);
    		setBackground(co);
    		return this;
    	}

  4. #4
    Membre confirmé Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Points : 554
    Points
    554
    Par défaut
    Ce code semble bon, la vérité est ailleurs...

    montre ton code initialisant ta JXTreeTable

  5. #5
    Membre actif Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Points : 209
    Points
    209
    Par défaut
    voila le code initiant la JXtreeTable

    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
    public void setXTreeTable(JXTreeTable treeTable) {
     
    		setTreeTableModel(treeTableModel);
     
    		treeTable = new JXTreeTable();
     
    		treeTable.setDefaultRenderer(Object.class, new ColorRenderer(
    				treeTableModel));
    		treeTable.setIntercellSpacing(new Dimension(1, 1));
    		treeTable.setTreeTableModel(getTreeTableModel());
    		treeTable.setShowGrid(true);
    		treeTable.setGridColor(Color.black);
    		// final ColorRenderer colorRenderer = new
    		// ColorRenderer(treeTableModel);
    		final JXTreeTable treeTable2 = treeTable;
     
     
    		vScrollPane = new JScrollPane(treeTable,
    				JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
    				JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    		this.treeTable = treeTable;
     
    		treeTable.setVisible(true);
    }

  6. #6
    Membre actif Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Points : 209
    Points
    209
    Par défaut
    Dans mon code g mis la couleur de chaque ligne en variable global de chaque TreeNode (ComponentTreeNode chez moi).
    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
    48
    49
    50
    51
    52
    53
    54
    55
     */
    	public ComponentTreeNode(String name, ComponentTreeNode aParent,
    			String type, int id, Color color) {
    		
    		/*
    		 * init the parameters of the current node*/
    		this.name = name;
    		this.parent = aParent;
    		this.type = type;
    		this.id = id;
    		this.color = color;
    
    		/*
    		 * initialize columns for the current node
    		 */
    		valeurs.add("");
    		valeurs.add("");
    		valeurs.add("");
    		valeurs.add("");
    
    		/*
    		 * if type is "r" for root
    		 */
    		if (type == "r") {
    			leaf = false;
    			for (int i = 1; i <= 10; i++) {
    				String vName = "Echantillon " + i;
    				if ((i % 2) == 0)
    					children.add(new ComponentTreeNode(vName, this, "c", i,
    							Color.green));
    				else
    					children.add(new ComponentTreeNode(vName, this, "c", i,
    							Color.white));
    
    			}
    		}
    		/*
    		 * if type is "c" for children
    		 */
    		if (type == "c") {
    			leaf = true;
    			for (int i = 1; i <= 5; i++) {
    				String vName = "Echantillon " + id + " - " + i;
    				children.add(new ComponentTreeNode(vName, this, "f", i, color));
    
    			}
    		}
    		/*
    		 * if type is "f" for leaf
    		 */
    		if (type == "f") {
    			leaf = true;
    		}
    
    	}
    et je vois en fait que malgré la répartition des couleurs (qui est bonne je l'ai vérifié) dans les noeud du JTreeTable, à l'affichage seul la derniere couleur appelé dans la méthode getTableCellRendererComponent(...) est affiché.

    mais dés que je selectionne l'ensemble des lignes alors toutes les couleurs sont affichées normalement.

    ma question est de savoir pourquoi ca réagit comme ca? est ce que ca peut etre le fait que je veux utilisé plusieurs couleurs?

  7. #7
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Le plus simple dans ton cas serait directement d'aller poser la question du coté de Swingx.

    Là JXtreeTable est un composant toujours en cours de développement et de ce fait encore soumis à des bugs. Pour te donner une idée voilà le BugTRacker associé au bugs non corrigés sur la JXtreeTable

    https://swingx.dev.java.net/issues/b...r=Issue+Number

    Sinon pour le forum de SwingX c'est par là:

    http://forums.java.net/jive/forum.jspa?forumID=73
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

Discussions similaires

  1. [C#] Probleme de couleur dans une ListView
    Par Oberown dans le forum Windows Forms
    Réponses: 1
    Dernier message: 05/12/2005, 17h39
  2. Réponses: 2
    Dernier message: 09/11/2005, 15h43
  3. probleme de couleur de fond sous mozilla et pas sous IE
    Par soccernet dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 27/12/2004, 10h45
  4. probleme de couleur
    Par ellipse dans le forum OpenGL
    Réponses: 5
    Dernier message: 29/10/2004, 12h59
  5. [newbie] Probleme de couleurs
    Par Racailloux dans le forum OpenGL
    Réponses: 3
    Dernier message: 29/04/2004, 14h32

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