gpt4 book ai didi

java - 在 Javafx 中切换场景时如何保持窗口大小?

转载 作者:行者123 更新时间:2023-11-30 02:55:58 24 4
gpt4 key购买 nike

我只是想弄清楚为什么当我改变场景时窗口大小(我设置为全屏)会改变,有没有一种方法(即命令)可以发出一次让Java FX知道不可以改变尺寸吗?

import javafx.application.Application;
import javafx.geometry.Pos;

import javafx.scene.Scene;

import javafx.scene.control.Button;
import javafx.scene.control.ContentDisplay;

import javafx.scene.image.Image;

import javafx.scene.image.ImageView;
import javafx.scene.layout.BorderPane;

import javafx.scene.layout.HBox;

import javafx.scene.layout.StackPane;

import javafx.stage.Stage;

public class Main extends Application {

Scene scene,scene_2;

public static void main(String[] args) {

launch(args);

}

@Override

public void start(Stage Win_primary) throws Exception {

Win_primary.setTitle("AN-0");



Button start,exit_pro,back_to_start;

start= new Button();

start.setText("Start");

Image exit_door = new Image("file:C:\\Users\\MyPc\\Pictures\\FX\\vector-icons_05-128 (2).png");



exit_pro= new Button ();
exit_pro.setGraphic(new ImageView(exit_door));





start.setStyle(

"-fx-background-radius: 100em; " +

"-fx-min-width: 200px; " +

"-fx-min-height: 200px; " +

"-fx-max-width: 200px; " +

"-fx-max-height: 170px;" +

"-fx-font-size: 20px"

);


exit_pro.setMaxSize(50, 50);
exit_pro.setOnAction(e -> Win_primary.close());

StackPane layout = new StackPane();
layout.setStyle("-fx-background-color: #FFFFFF ;");
layout.getChildren().add(start);
layout.setAlignment(exit_pro, Pos.BOTTOM_CENTER);
layout.getChildren().add(exit_pro);


start.setOnAction(e -> {
Win_primary.setScene(scene_2);

});
scene = new Scene(layout, 300, 250);


//scene 2

StackPane layout2 = new StackPane();
back_to_start = new Button("Cancel");
layout2.setStyle("-fx-background-color: #FFFFFF ;");
layout2.getChildren().add(back_to_start);
layout.setAlignment(back_to_start, Pos.BOTTOM_CENTER);
scene_2 = new Scene (layout2,300,250);
back_to_start.setOnAction(e -> Win_primary.setScene(scene));


Win_primary.setScene(scene);
Win_primary.setMinHeight(700);
Win_primary.setMinWidth(700);
Win_primary.setMaximized(true);

Win_primary.setFullScreen(true);

Win_primary.show();

}

}

最佳答案

我遇到了同样的问题,最终没有改变场景,而只是改变了场景的根。所以代替:

start.setOnAction(e -> {
Win_primary.setScene(scene_2);
});

然后你会写:

start.setOnAction(e -> {Win_primary.getScene().setRoot(layout2)});

关于java - 在 Javafx 中切换场景时如何保持窗口大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37200224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com