如何在Scene Builder中修复窗口大小?

问题描述 投票:0回答:2

我在这里设置了最大/最小宽度/高度

enter image description here

但它似乎没有用,我仍然可以在预览时更改窗口的大小

java javafx fxml
2个回答
2
投票

你设置的值(可能)是根Node。这不会阻止SceneStage增长或缩小超过指定值。事实上,取决于根Node,设置这些值甚至不会阻止说Node增长或萎缩。

来自Scene的Javadoc:

应用程序必须通过设置root属性为场景图指定根节点。如果使用组作为根,则场景图的内容将被场景的宽度和高度剪切,并且更改为场景的大小(如果用户调整舞台大小)将不会更改场景图的布局。如果将可调整大小的节点(布局区域或控件)设置为根,则根的大小将跟踪场景的大小,从而导致内容在必要时被中继。

如果你想限制Stage的大小,你需要通过设置Stage的适当属性来实现它:minWidthminHeightmaxWidthmaxHeight。由于你设置minWidth = maxWidthminHeight = maxHeight,最好使用Stage.setResizable(false)(如Bernhard's answer中所述)。此选项还可以防止Stage最大化,因为设置最小/最大尺寸属性不起作用。虽然在我的机器上,属性确实阻止了Stage在最大化时生长,但它导致Stage跳到左上角。

由于您无法访问Scene Builder使用的预览Stage(据我所知),我认为您不能限制预览的大小。然而,你可能能够处理的一件事是预览Stage在关闭时打开它之前的大小。我不确定为什么这是默认/不可改变的行为,但我猜它是由每次使用相同的Stage引起的。要将Stage调整为首选大小,您可以访问:

Preview -> Preview Size -> Preferred Size (Width x Height)

这需要显示预览,否则禁用菜单项。


3
投票

您可以在舞台上设置.setResizable(false);,应该有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.