【问题标题】:JavaFX: Set Scene min size excluding decorationsJavaFX:设置场景最小尺寸,不包括装饰
【发布时间】:2016-10-02 21:41:37
【问题描述】:

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

设置最小尺寸时如何排除这个?

【问题讨论】:

    标签: java javafx window


    【解决方案1】:

    你可以显示Stage undecorated,这将删除所有的边框:

    primaryStage.initStyle(StageStyle.UNDECORATED);
    

    如果你想装饰一下

    如果你想装饰它,你可以将Scene 的大小设置为首选的最小大小,然后显示窗口(@98​​7654326@ 将具有能够显示Scene 的大小size 哪个实际上是您需要的最小尺寸),然后将最小尺寸设置为当前尺寸。

    示例:

    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);
        }
    }
    

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

    【讨论】:

    • 可能值得记住的是,如果您在显示之前设置舞台的最小宽度和高度,它们会被完全忽略:用户可以将窗口大小调整为小于最小宽度和您指定的高度。所以它必须由一个听众来完成,就像@DVarga 建议的那样
    【解决方案2】:

    void start(Stage primaryStage) 中,输入以下内容:

    primaryStage.initStyle(StageStyle.UNDECORATED);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多