comment rendre l'enfant de redimensionnement automatique (l'enfant est Volet, le parent est VBox) en javafx
J'ai 2 questions
1.dans un javafx application, je veux mettre l'enfant(crosshairArea) dans le coin haut-gauche de son parent, avec 1/2 de largeur et de hauteur.
pense que je peux le faire via remplacer la fonction parent "layoutChildren" (VBox),
est-il d'autres façon de le faire? par exemple, biens de liaison?
2.initialement VBox occupera la scène complète de la zone, comment faire(déménager) à la demi-fond de scène?
public class Crossh extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) {
VBox root = new VBox(5);
//root.setPadding(new Insets(20,20,20,20));
root.setStyle("-fx-border-color:red");
Pane crosshairArea = new Pane();
crosshairArea.maxWidthProperty().bind(root.widthProperty());
crosshairArea.setStyle("-fx-border-color:black");
root.getChildren().add(crosshairArea);
Scene scene = new Scene(root);
stage.setScene(scene);
stage.setTitle("Location Crosshair");
stage.setWidth(900);
stage.setHeight(700);
stage.show();
}
}
OriginalL'auteur Rui Zhou | 2014-03-06
Vous devez vous connecter pour publier un commentaire.
Pour votre première question Avez-vous essayé le
height
propriété de la VBox. Par exemplePour votre deuxième question, vous aurez à mettre quelque chose sur le dessus de la VBox pour occuper la taille sur le dessus ou vous pouvez définir la alignement de VBox pour Pos.BAS
Je ne pense pas que
VBox
est fait pour soutenir une telle chose choses. Logiquement, VBox est unvertical
boîte et son enfant doit remplir complètement la largeur disponible. Cependant, je ne suis pas sûr, et les professionnels peuvent répondre mieux !Pour
window resize
, vous pouvez lier lescene
widthProperty et heightProperty !Vous pouvez également définir la croissance verticale avec
VBox.setVgrow(child, Priority.ALWAYS);
Cela a très bien fonctionné pour moi avec une VBox contenant un TableView et une Pagination contrôle pour créer une pagination de la table des données. Le tableau se développe naturellement avec la hauteur et la pagination de contrôle n'est pas, comme je l'ai mis à la Priorité.JAMAIS. Pas besoin d'ajouter de complexe, sujette à des erreurs d'auditeurs.OriginalL'auteur ItachiUchiha
Définir la VBox du dernier enfant vgrow true à la propriété.
Qui permettra de résoudre le problème.
VBox.setVgrow(child, Priority.ALWAYS);
a très bien fonctionné pour moi.OriginalL'auteur AndreGraveler