Ich habe die aktuelle Situation: ein Hauptfenster mit einem Haupt BorderPane
. In der Mitte davon habe ich eine AnchorPane
mit einigen Objekten drin. Ich möchte die Objekte innerhalb der Höhe des Bereichs gleichmäßig verteilen, auch wenn die Größe des Bereichs geändert wird.Kann nicht korrekt verschachtelte Palette JavaFX
Das Problem, das ich habe, ist, dass alle Dinge funktionieren, wenn die Größe die Höhe des Fensters vergrößern. Wenn ich die Größe des Fensters verkleinere, nimmt die Höhe des Fensters weiter zu.
Ich habe den Fehler in diesem Beispiel Anwendung unter Verwendung einer einfachen Linie (in meiner Anwendung ich habe auch eine Zeile wie diese) wiedergegeben:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.Pane;
import javafx.scene.shape.Line;
import javafx.stage.Stage;
public class ResizeProblem extends Application {
@Override
public void start(Stage primaryStage) {
BorderPane root = new BorderPane();
AnchorPane inner = new AnchorPane();
Line line = new Line();
// comment from here...
root.setCenter(inner);
Pane pane = inner;
// ...to here and uncomment next to make things work
//Pane pane = root;
line.startXProperty().bind(pane.widthProperty().divide(2));
line.endXProperty().bind(pane.widthProperty().divide(2));
line.setStartY(0.);
line.endYProperty().bind(pane.heightProperty());
pane.heightProperty().addListener((obs, ov, nv) -> System.out.println("ov: " + ov + " nv: " + nv));
pane.getChildren().add(line);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Resize Problem");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Ich habe die Verschachtelung gesehen zu vermeiden, funktioniert alles wie erwartet .
Was ist daran falsch?
Bitte helfen Sie mir, die richtige Richtung zu finden.
Nur zur Info: Nrn. + d statt Nummer + Punkt (line.setStartY (0T);) II denken, dass es ein besserer Stil. – Marcel