JavaFX - Faire ScrollPane faire défiler automatiquement
J'ai une Étiquette à l'intérieur d'un composant ScrollPane. Je suis la mise à jour de l'étiquette dans une boucle (Dans un autre thread). Comment puis-je mettre à jour le composant ScrollPane de sorte qu'il se défile vers le bas (pas sur le côté, ce qui va être fait manuellement) si l'utilisateur n'a pas le maintenir à un poste? Est-il un setter?
Pourriez-vous expliquer ce
Si l'utilisateur n'est pas de défilement.
if the user doesnt hold it at a position
?Si l'utilisateur n'est pas de défilement.
OriginalL'auteur user3029101 | 2013-12-02
Vous devez vous connecter pour publier un commentaire.
Pour définir le composant ScrollPane vers le bas automatiquement la
vvalue
du composant ScrollPane élément, comme ceci:Le
FXML
fichier est l'endroit où vous construisez votre Scène, puis dans leController.java
de manipuler les éléments d'associer une variable via l'élémentfx:id
. Si c'est le fait de travailler uniquement si vous êtes dans l'onglet cela signifie que vous devez mettre la.setVvalue()
quelque part d'autre, cela dépend de quand vous voulez pour le feu, probablement quelque part dans le thread où vous écrivez dans votre Étiquette.- Je construire ma scène avec java pur
Eh bien.. vous avez également cette option, mais j'ai jeté ce depuis que je savais à propos de
SceneBuilder
. Il fonctionne indépendamment de votre IDE et automatizes le processus de construction de laFXML
fichiers. À mon avis, c'valeurs pour au moins prendre un coup d'oeil.OK. L'a obtenu . J'ai une idée. Depuis que cette chose ne fonctionne que si je suis en train de regarder l'onglet , je vais ajouter un écouteur (onglet modifier/sélectionner l'évènement), puis définissez le vvalue. Je suis tombé sur différents extraits de code. Aucun d'entre eux travaillaient. J'ai un TabPane
OriginalL'auteur Math
Si vous utilisez HBox ou VBox dans le composant ScrollPane, essayez les solutions suivantes:
1.0
, qui est la valeur par défaut valeur maximale de lahvalue
de la propriété, qui à son tour doit êtrevvalue
. Donc une invalidation de l'écouteur est suffisant. Voir ma réponse pour une solution correcte.OriginalL'auteur Alberto Trindade Tavares
Cela fonctionne dans mon code:
dans mon cas scrollPane contient mainGrid
OriginalL'auteur brack11
@Math merci , cela a fonctionné!
Et j'ai résolu le problème "doit être à la recherche à l'onglet" avec cette partie de code
Merci quand même. C'est tout le problème de l'onglet , mais j'ai pensé que je devrais inclure ce que j'ai fait , dans le cas où quelqu'un le trouve utile!
OriginalL'auteur user3029101
Pour faire défiler le volet de défilement vers le bas complètement, définir son
vvalue
de la propriété à1.0
:Remarque cela peut ne pas fonctionner lorsqu'il est appelé à après redimensionnement du défilement du volet contenu.
Dans un tel cas, de retarder l'appel via
Platform.runLater()
ne résout pas le problème, définissez la valeur de la propriété en réponse au contenuheight
de la propriété invalidation de l'événement:OriginalL'auteur Francesco Menzani
Cela devrait faire l'affaire:
OriginalL'auteur Martin Pfeffer