2013-04-26 8 views
2

Mon objectif est d'afficher une liste d'abréviations avec deux entrées par ligne: l'abréviation et la version longue correspondante. Pour une belle mise en page j'ai utilisé un GridPane en raison de l'alignement vertical sur toutes les entrées - c'est agréable à lire. Mais je veux aussi faire défiler jusqu'à l'abréviation cliquée et mettre le focus dessus comme dans une version ListView de celui-ci.Combiner JavaFX 2 ListView et GridPane propose

Par exemple, les liens # sur la page en bon vieux HTML. Y at-il un autre élément de mise en page javafx me manque pour y parvenir?

Répondre

0

Je ne crois pas qu'il y ait un contrôle prévu qui fonctionnera pour le scénario spécifique que vous décrivez. Cependant, je pense que l'une de ces options pourraient fonctionner pour vous ...

  1. Utilisez le contrôle TableView et ajouter deux colonnes pour les informations que vous souhaitez montrer (un pour l'abréviation et une autre pour la version longue). Les TableViews ont également les fonctionnalités scrollTo et setFocus que vous recherchez. Here est une bonne ressource pour vous aider à démarrer avec le contrôle TableView. Vous pouvez également styliser la Tableview avec CSS pour ressembler moins à une table et plus comme une liste si c'est ce que vous voulez.
  2. La deuxième option consiste à définir une usine de cellules personnalisée sur votre ListView qui construit des cellules personnalisées à l'aide hbox, vbox, étiquettes, etc. pour atteindre votre look désiré. Vous souhaiterez également utiliser la fabrique de cellules pour remplir chaque cellule ListView avec un objet qui contient à la fois le texte abrégé et le texte de la version longue. Quelques bonnes ressources, 1, 2

Bien que je pense que les deux options fonctionnera très bien, je suggère l'option 1 puisque dans l'option 2 vous construisez une sorte de structure de type de table de toute façon. J'espère que ceci est utile!

Questions connexes