Javafx - медленное объявление / запуск части кода (значений) против остальных - PullRequest
0 голосов
/ 04 апреля 2019

Здравствуйте. У меня проблема с этим фрагментом кода, я не понимаю, почему 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...