Javafx场景切换导致舞台大小增加



我正在使用javafx(不使用fxml),然后我将舞台传递到一个控制器中,以在单击按钮时更改舞台上的场景。场景变化正确,但舞台和场景的大小增加。它的大小增加了约0.1(宽度),高度有时也会增加(不是每次)。

这是使用的控制器。

 public class Controller {
 public Controller(){
}
 public static void homeButtonhandler(Stage stage){
        stage.close();
     }
 public static void adminButtonhandler(Stage stage){


     adminPane adminPane1 = new adminPane(stage);
    Scene adminScene = new Scene (adminPane1);
     stage.setScene(adminScene);
    }}

AdminPane扩展了我创建的另一个称为Mainpane的类,这两者都扩展了窗格类。其中有其他窗格以创建GUI结构。主窗格的尺寸就像这样设置:

    top = createTop(stage);
    this.getChildren().addAll(top);
    this.setWidth(stage.getWidth());
    this.setPrefWidth(stage.getWidth());
    this.setMaxWidth(stage.getWidth());
    this.setMinWidth(stage.getWidth());
    this.setHeight(stage.getHeight());
    this.setMaxHeight(stage.getHeight());
    this.setMinHeight(stage.getHeight());
    this.setPrefHeight(stage.getHeight());

我正在使用:

测试类
public class test extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
    //primaryStage.setResizable(true);
    mainPane myPane = new mainPane(primaryStage);
    Scene homeScene = new Scene (myPane);
    primaryStage.setScene(homeScene);
    primaryStage.getIcons().add(new Image(getClass().getResourceAsStream("/resources/icons/joulesIcon.png")));
    primaryStage.show();

    }

public static void main(String[] args) {
    launch(args);
}

}我相信这与我的舞台传递有关,任何指示都将不胜感激。

我还发现,当我使用primaryStage.setScene(new Scene(root, primaryStage.getWidth(), primaryStage.getHeight()))时,窗口底部的东西在窗口的底部下方。我的情况是通过使用旧场景的尺寸而不是主要阶段的尺寸来解决的。

public void setScene(Parent root) {
    Scene oldScene = primaryStage.getScene();
    primaryStage.setScene(oldScene == null
            ? new Scene(root, primaryStage.getMinWidth(), primaryStage.getMinHeight())
            : new Scene(root, oldScene.getWidth(), oldScene.getHeight()));
}

相关内容

  • 没有找到相关文章

最新更新