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

0 java javafx window

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


问题

是否有可能允许仅水平或仅垂直调整大小?


有诸如Stage.setMaxWidthStage.setMaxHeight、之类的方法Stage.setMinWidthStage.setMinHeight但它们只能用于控制固定大小阶段的大小调整(width = minWidth = maxWidth 例如通过设置禁止水平调整大小)。

M. *_* S. 5

您可以阻止外部尝试更改高度,如下所示:

stage.show();
stage.maxHeightProperty().bind(stage.heightProperty());
stage.minHeightProperty().bind(stage.heightProperty());
Run Code Online (Sandbox Code Playgroud)

宽度相同:

stage.maxWidthProperty().bind(stage.widthProperty());
stage.minWidthProperty().bind(stage.widthProperty());
Run Code Online (Sandbox Code Playgroud)

这种方式将使您能够在内容更改时在内部调整其大小(sizeToScene()例如调用)。