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

JavaFX Discussion :

Treeview color some nodes


Sujet :

JavaFX

  1. #1
    Membre régulier
    Homme Profil pro
    .
    Inscrit en
    Octobre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : .
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 174
    Points : 90
    Points
    90
    Par défaut Treeview color some nodes
    Bonjour,

    Je cherche a changer la couleur (background) de certaines node d'un treeview.
    Comment puis-je m'y prendre ?
    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    CSS : en mettant un style inline ou un style de classe ou une pseudoclasse sur la cellule en fonction de son contenu.

    • Style inline :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      public class MachinTreeCell extends TreeCell<Machin> {
           @Override
          protected void updateItem(final MachinTreeCell item, final boolean empty) {
              super.updateItem(item, empty);
              setStyle(null);
              [...]
              if (<test sur le contenu>) {
                  setStyle("-fx-background-fill: red;");
                  [...]
              }
              [...]
         }
      }
    • Style de classe :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      public class MachinTreeCell extends TreeCell<Machin> {
           @Override
          protected void updateItem(final MachinTreeCell item, final boolean empty) {
              super.updateItem(item, empty);
              getStyleClass().remove("machin-chose");
              [...]
              if (<test sur le contenu>) {
                  getStyleClass().add("machin-chose");
                  [...]
              }
              [...]
         }
      }
      Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      /* Cellule spéciale. */
      .machin-chose {
          -fx-background-fill: red;
      }
    • Les pseudo-classes :
      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
      public class MachinTreeCell extends TreeCell<Machin> {
          private static final PseudoClass MACHIN_CHOSE_CLASS = PseudoClass.getPseudoClass("machin-chose"); // NOI18N.    
       
          public MachinTreeCell() {
              getStyleClass().add("machin-tree-cell");
          }
       
          @Override
          protected void updateItem(final MachinTreeCell item, final boolean empty) {
              super.updateItem(item, empty);
              pseudoClassStateChanged(MACHIN_CHOSE_CLASS, false);
              [...]
              if (<test sur le contenu>) {
                  pseudoClassStateChanged(MACHIN_CHOSE_CLASS, true);
                  [...]
              }
              [...]
         }
      }
      Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      /* Cellule normale. */
      .machin-tree-cell {
      }
      /* Cellule spéciale. */
      .machin-tree-cell:machin-chose {
          -fx-background-fill: red;
      }


    D'entre le style de classe et les pseudo-classes, normalement c'est le second qui coute le moins en terme de performances.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. Filtre sur Treeview & coloration syntaxique
    Par youness78 dans le forum jQuery
    Réponses: 0
    Dernier message: 25/06/2014, 09h40
  2. Réponses: 4
    Dernier message: 21/02/2008, 17h33
  3. [VB.net][treeview] Sélectionner un Node via click droit
    Par arnolem dans le forum Windows Forms
    Réponses: 3
    Dernier message: 22/03/2006, 11h45
  4. [VB6] Treeview: nombre de node?
    Par gg78 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 02/11/2004, 10h42
  5. Colorer le texte d'une node d'un treeView
    Par SBP dans le forum MFC
    Réponses: 3
    Dernier message: 28/10/2004, 19h34

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