JavaFX:允许 window 仅在一个方向上调整大小

JavaFX: Allow window resizing in one direction only

可以使用 javafx.stage.Stage.setResizable(boolean) 方法更改 JavaFX 舞台的可调整大小状态。


问题

有没有可能只允许水平或垂直调整大小?


Stage.setMaxWidthStage.setMaxHeightStage.setMinWidthStage.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())。