Здравствуйте. У меня проблема с этим фрагментом кода, я не понимаю, почему launchData, даже если он загружен и определен ранее как объявление ErrorHandler, запускается после ErrorHandler.См. Вывод и код.
public class Controller implements Initializable {
public ErrorHandler errorHandler;
@FXML
public VBox bottomVbox;
public void launchData() {
// DragResizer.makeResizable(sqlTabPane);
// DragResizer.makeResizable(csvTabPane);
// DragResizer.makeResizable(tableTabPane);
Main.getPrimaryStage().widthProperty().addListener((arg,oldVal,newVal) -> {
HBox.setPrefWidth((Double) newVal);
upperPanelHBox.setPrefWidth((Double) newVal);
bottomVbox.setPrefWidth((Double) newVal);
System.out.println("AFTER RUNNING LAUNCH: " + bottomVbox.getPrefWidth());
});
@Override
public void initialize(URL location, ResourceBundle resources) {
launchData();
errorHandler = new ErrorHandler(bottomVbox);
...
}
Класс ErrorHandler:
public class ErrorHandler {
TextArea textArea;
public ErrorHandler(VBox vBox) {
// vBox.getChildren().a
System.out.println("VBOX WIDTH AFTER IMPLEMENTING ERRORHANLDER: " + vBox.getPrefWidth());
...
}
ВЫХОД:
- ШИРИНА VBOX ПОСЛЕ РЕАЛИЗАЦИИ ОШИБКА: -1.0
- ПОСЛЕ ЗАПУСКА РАБОТЫ: 1042.0
Есть идеи, почему он загружается таким образом?Я ожидал: - Ширина VBOX после выполнения ERRORHANLDER: 1042.0 - После запуска: 1042.0