使用javafx中的sizeToScene方法调整舞台大小时的奇怪行为

时间:2018-09-11 13:08:50

标签: javafx

我在用javafx中的sizeToScene方法调整舞台的大小时遇到​​问题。

如果我将根节点大小更改为最大屏幕大小和调用sizeToScene之上,则窗口将调整为最大可能的屏幕大小。 但是,如果我记得sizeToScene,则场景会变得大于舞台,并且应用程序将被切断。 有时,第一个调用导致的行为与上一个描述的行为相同。

我不知道这是否是正常行为,是否有解决方法可以将场景的大小调整为舞台的大小。

在Linux和Windows上也发生了同样的事情。

下面的例子

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;

public class SceneSizeBug extends Application {
    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        Button button = new Button("test");
        button.setOnAction(e -> {
            button.setPrefSize(2000, 2000);
            primaryStage.sizeToScene();
        });
        button.setPrefSize(1280, 1024);
        Scene s = new Scene(button, -1, -1);
        primaryStage.setScene(s);
        primaryStage.show();
    }
}

0 个答案:

没有答案