JavaFX:允许 window 仅在一个方向上调整大小
JavaFX: Allow window resizing in one direction only
可以使用 javafx.stage.Stage.setResizable(boolean) 方法更改 JavaFX 舞台的可调整大小状态。
问题
有没有可能只允许水平或垂直调整大小?
有Stage.setMaxWidth
、Stage.setMaxHeight
、Stage.setMinWidth
、Stage.setMinHeight
等方法,但它们只能用于控制固定大小阶段的大小调整(通过设置width = minWidth = maxWidth
例如,禁止水平调整大小)。
您可以像这样防止外部尝试更改高度:
stage.show();
stage.maxHeightProperty().bind(stage.heightProperty());
stage.minHeightProperty().bind(stage.heightProperty());
宽度相同:
stage.maxWidthProperty().bind(stage.widthProperty());
stage.minWidthProperty().bind(stage.widthProperty());
这种方式使您能够在内容更改时在内部调整它的大小(例如调用 sizeToScene()
)。
可以使用 javafx.stage.Stage.setResizable(boolean) 方法更改 JavaFX 舞台的可调整大小状态。
问题
有没有可能只允许水平或垂直调整大小?
有Stage.setMaxWidth
、Stage.setMaxHeight
、Stage.setMinWidth
、Stage.setMinHeight
等方法,但它们只能用于控制固定大小阶段的大小调整(通过设置width = minWidth = maxWidth
例如,禁止水平调整大小)。
您可以像这样防止外部尝试更改高度:
stage.show();
stage.maxHeightProperty().bind(stage.heightProperty());
stage.minHeightProperty().bind(stage.heightProperty());
宽度相同:
stage.maxWidthProperty().bind(stage.widthProperty());
stage.minWidthProperty().bind(stage.widthProperty());
这种方式使您能够在内容更改时在内部调整它的大小(例如调用 sizeToScene()
)。