JavaFX 2 Automatique De La Largeur De La Colonne
J'ai un JavaFX 2 tableau qui affiche les détails de contact pour les personnes, permet d'imaginer il y a trois colonnes: nom, prénom et adresse e-mail. Quand mon application démarre, elle remplit le tableau avec plusieurs lignes de données sur les personnes qui sont déjà dans le système.
Le problème est que les largeurs de colonne sont tous les mêmes. La plupart du temps le premier et le dernier nom est affiché en entier, mais l'adresse e-mail est arriver coupées. L'utilisateur peut double-cliquez sur le diviseur dans l'en-tête pour redimensionner la colonne mais que va devenir rapidement fastidieux.
Une fois que la table a été pré-rempli, je voudrais en programmant redimensionner toutes les colonnes à afficher les données qu'ils contiennent, mais je ne peux pas comprendre comment le faire. Je vois que je peux appeler col.setPrefWidth(x)
mais qui n'aide pas vraiment comme je l'aurais deviner la largeur.
Vous devez vous connecter pour publier un commentaire.
Si votre nombre total de colonnes sont pré-connu. Vous pouvez distribuer les largeurs de colonne entre la tableview largeur:
Dans le présent code, les proportions de la largeur des colonnes sont conservées dans la synchronisation lors de la tableview est redimensionnée, de sorte que vous n'avez pas besoin de le faire manuellement. Aussi la
surnameCol
prend la moitié de l'espace de la tableview de largeur.Cela fonctionne pour moi en JavaFX 8
Dans les autres exemples que vous avez le problème, la barre de défilement verticale largeur est ignoré.
myTableView.setItems(myObservableList);
de rafraîchissement de l'Interface Utilisateur Graphique (GUI) en accédant à l'Application Thread avec: ligne n ° 1:Platform.runLater(new Runnable() {
de la ligne #2:@Override public void run() {
ligne n ° 3:myTableView.refresh();
ligne n ° 4:}});
Comme je l'ai utiliser SceneBuider, je viens de définir les MinWidth, et MaxWidth à certains de colonnes et de la colonne principale je viens de définir les PrefWidth à "USE_COMPUTED_SIZE"
col.setPrefWidth(Control.USE_COMPUTED_SIZE);
Après 3 ans, j'ai enfin trouvé la solution, javafx colonne dans tableview auto ajustement de la taille
Si vous aviez 4 colonnes et seulement la dernière colonne besoin de développer pour remplir le reste de la largeur du tableau et les autres colonnes sont restés la taille que j'ai mis en Scène Builder.
Ou si vous avez eu 2 colonnes que nécessaire pour élargir ensuite.
Vous pouvez aussi le faire en éditant le fichier fxml si vous en avez un.
Le paramètre
prefWidth
vous permet de modifier la valeur par défaut d'une colonne.À generelize la largeur et à utiliser un nombre quelconque et assurez-vous que la largeur est de 100% de la largeur du tableau, vous pouvez utiliser :
Aussi, une simple astuce basée sur une
AnchorPane
sera une bonne solution.On va envelopper le
TableView
dans unAnchorPane
mais aussi nous allons ancrage à gauche et à droite de l'TableView
comme ceci:Ce code simple permet d'étirer le
TableView
dans les deux directions (droite et gauche) aussi, il va ajuster à chaque fois que la barre de défilement est ajouté.Vous pouvez obtenir une idée de comment cela fonctionne regarder ce gif animé.
Maintenant, vous pouvez redimensionner les colonnes, en ajoutant ces lignes: