你好,我对这段代码有疑问,我不明白为什么即使在早于ErrorHandler声明之后就启动并定义了launchData的情况下,都在ErrorHandler之后启动了launchData。请参阅输出和代码。
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宽度:1042.0 -启动后:1042.0