2016-07-01 4 views
2

Voici mon TreeTableView. Comme vous pouvez le voir, les flèches pour l'expansion de l'effondrement du niveau ne sont pas en ligne avec les données.JavaFX: Align treetableview développez la flèche jusqu'au contenu de la ligne

enter image description here Je veux les faire en une ligne. Mais je ne sais pas comment faire ça. J'ai essayé les moyens suivants dans le CSS mais rien de tout cela fonctionne.

.tree-table-row-cell .arrow { 
    -fx-alignment: CENTER; 
    -fx-mark-color:red; 
} 
.tree-table-row-cell .arrow-button { 
    -fx-alignment: CENTER; 
    -fx-mark-color:blue; 
} 

.tree-table-cell .arrow { 
    -fx-alignment: CENTER; 
    -fx-mark-color:yellow; 
} 
.tree-table-cell .arrow-button { 
    -fx-alignment: CENTER; 
    -fx-mark-color:green; 
} 
.tree-table-cell > .arrow-button >.arrow{ 
    -fx-alignment: CENTER; 
    -fx-mark-color:purple; 
} 
.tree-table-row-cell > .arrow-button >.arrow{ 
    -fx-alignment: CENTER; 
    -fx-mark-color:grey; 
} 

Est-ce que quelqu'un a une idée comment puis-je y parvenir?

+0

Le comportement par défaut est que la ligne est aligné verticalement avec le marqueur. Mais vous avez changé l'alignement du marqueur ou de la police dans tout autre CSS infectant ceci. Si c'est un fxml et que vous avez déjà scenebuilder, essayez de l'analyser avec le "CSS Analyzer" -Feature dans scenebuilder. Vous verrez si les valeurs par défaut sont remplacées. – NwDev

Répondre

2

Ce n'est pas parfait (et cela fait un an et demi que cela a été demandé), mais je devais faire la même chose et c'est le meilleur que je pourrais trouver. Le problème est que la flèche est déjà alignée au centre et qu'elle ne se réaligne pas après l'ajout de style, donc si vous ajoutez un style qui agrandit le contenu de chaque cellule, vous le rejetterez. (L'une de mes valeurs de cellule utilise une taille de police plus grande car la valeur dans cette cellule est généralement un signe moins, ce qui est difficile à voir pour certains de mes utilisateurs.)

Utilisation de Scenic View (un excellent outil pour les problèmes de ce type) J'ai trouvé qu'il y a un wrapper autour du noeud de la flèche avec la classe .tree-disclosure-node. (Vue panoramique est aussi comment je sais que c'est déjà centré.) Donc, je viens d'ajouter un rembourrage supérieur à cette enveloppe. Ne vous embêtez pas à essayer de remplir la flèche elle-même, car cela ne fera que grossir la flèche.

Espérons que cela aide quelqu'un.

.tree-disclosure-node { 
    -fx-padding: 15 5 0 5; 
} 

enter image description here