wie man Kind Größe automatisch anpassen (Kind-Bereich, ein Elternteil ist VBox) in javafx
Ich habe 2 Fragen
1.in einer javafx Anwendung, ich möchte das Kind(crosshairArea) in der linken oberen Ecke des übergeordneten, mit 1/2 Breite und Höhe als gut.
glaube, ich kann das über das überschreiben der übergeordneten Funktion "layoutChildren" (VBox),
gibt es andere Wege, das zu tun? z.B. Immobilien verbindlich?
2.zunächst VBox besetzen die volle Szene-Bereich, wie man(verlagern) Sie die halbe Unterseite der Szene?
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();
}
}
InformationsquelleAutor Rui Zhou | 2014-03-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für Ihre erste Frage Haben Sie versucht, die
height
Eigenschaft der VBox. Zum BeispielFür Ihre zweite Frage, Sie haben, um etwas auf der Oberseite der VBox zu besetzen, um die Größe auf der Oberseite oder Sie können die Ausrichtung der VBox Pos.UNTEN
Ich glaube nicht, dass
VBox
gemacht wird, unterstützen solche Sache Dinge. Logisch, VBox ist einvertical
box und Ihr Kind muss vollständig füllen die zur Verfügung stehende Breite. Obwohl, ich bin mir nicht sicher, und Profis können die Antwort besser !Für
window resize
können Sie binden diescene
widthProperty und heightProperty !Sie können auch festlegen, dass das vertikale Wachstum mit
VBox.setVgrow(child, Priority.ALWAYS);
Dies funktionierte großartig für mich mit einer VBox mit einem TableView und ein Seitenumbruch-Steuerelement zum erstellen einer nummerierten Tabelle von Daten. Die Tabelle wächst natürlich mit der Höhe und der Seitenumbruch-Steuerelement nicht, wie ich ihn an Priorität.NIE. Keine Notwendigkeit, fügen Sie komplexe, fehleranfällige Zuhörer.InformationsquelleAutor ItachiUchiha
Legen Sie die VBox letzten Kind vgrow-Eigenschaft auf true.
Dass wird das problem lösen.
VBox.setVgrow(child, Priority.ALWAYS);
Super geklappt für mich.InformationsquelleAutor AndreGraveler