Sahne gösterilmeden önce bileşenleri eklemeniz ve aşama gösterildikten sonra değerleri almanız gerekir, i. E .: Bir Platform.runLater i içine grafik oluşturulduktan sonra ne olursa olsun çağırabileceği bir alternatif olarak
public void start(Stage primaryStage) {
BorderPane root = new BorderPane();
graph = new Graph();
addGraphComponents();
root.setCenter(graph.getScrollPane());
Scene scene = new Scene(root, 1024, 768);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();
Layout layout = new RandomLayout(graph);
layout.execute();
for(Cell cell: graph.getModel().getAllCells()) {
System.out.println(cell + ": " + cell.getBoundsInParent());
}
}
. e .:
Platform.runLater(() -> {
for(Cell cell: graph.getModel().getAllCells()) {
System.out.println(cell + ": " + cell.getBoundsInParent());
}
});
Bu yöntemleri ne zaman çağıracaksınız? Düzeni gerçekleştirmeden önce onları çağırırsanız (genellikle yalnızca UI ekrana işlendiğinde gerçekleşir), sıfır boyutlarını verir. (Muhtemelen bir [MCVE] göndermeye yardımcı olur.) –
Bunun bir kopyası şöyle olabilir: [JavaFX'te bir düğümün yüksekliğini alın (bir düzen geçişi oluşturur)] (http://stackoverflow.com/questions/ 26152642/get--yüksekliği-a-düğüm-in-javafx-üretmek-a-düzen geçiren). – jewelsea