JavaFX:设置场景的最小尺寸(不包括装饰)

我知道,使用JavaFX可以使用stage.setMinWidth()和stage.setMinHeight()设置舞台的最小大小,但是,这将包括窗口边框(带有最小,最大化和关闭按钮).

设置最小尺寸时如何排除此现象?

解决方法:

您可以显示未装饰的舞台,这将删除所有边框:

primaryStage.initStyle(StageStyle.UNDECORATED);

如果你想装饰它

如果要装饰它,可以将场景的大小设置为首选的最小大小,然后显示窗口(舞台将具有能够以该大小显示场景的大小,而实际大小是您所需的最小大小) ),然后将最小尺寸设置为当前尺寸.

例:

public class Main extends Application {

    private final int PREF_MIN_WIDTH = 500;
    private final int PREF_MIN_HEIGHT = 500;

    @Override
    public void start(Stage primaryStage) {
        try {
            Scene scene = new Scene(new HBox(), PREF_MIN_WIDTH, PREF_MIN_HEIGHT);

            primaryStage.setScene(scene);
            primaryStage.showingProperty().addListener((observable, oldValue, showing) -> {
                if(showing) {
                    primaryStage.setMinHeight(primaryStage.getHeight());
                    primaryStage.setMinWidth(primaryStage.getWidth());
                    primaryStage.setTitle("My mininal size is: W"+ primaryStage.getMinWidth()+" H"+primaryStage.getMinHeight());
                }
            });

            primaryStage.show();

        } catch(Exception e) {
            e.printStackTrace();
        }
    }

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

这将产生一个这样的窗口:

JavaFX:设置场景的最小尺寸(不包括装饰)

上一篇:Elasticsearch 2.3.3 JAVA api说明文档


下一篇:java-尽管设置了maxWidth属性,AnchorPane仍在增长