【发布时间】:2016-10-02 21:41:37
【问题描述】:
我知道在 JavaFX 中,您可以使用 stage.setMinWidth() 和 stage.setMinHeight() 设置舞台最小尺寸,但是,这将包括窗口边框(带有最小化、最大化和关闭按钮)。
设置最小尺寸时如何排除这个?
【问题讨论】:
我知道在 JavaFX 中,您可以使用 stage.setMinWidth() 和 stage.setMinHeight() 设置舞台最小尺寸,但是,这将包括窗口边框(带有最小化、最大化和关闭按钮)。
设置最小尺寸时如何排除这个?
【问题讨论】:
你可以显示Stage undecorated,这将删除所有的边框:
primaryStage.initStyle(StageStyle.UNDECORATED);
如果你想装饰一下
如果你想装饰它,你可以将Scene 的大小设置为首选的最小大小,然后显示窗口(@987654326@ 将具有能够显示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);
}
}
这将产生一个像这样的窗口:
【讨论】:
在void start(Stage primaryStage) 中,输入以下内容:
primaryStage.initStyle(StageStyle.UNDECORATED);
【讨论】: