你设置的值(可能)是根Node
。这不会阻止Scene
或Stage
增长或缩小超过指定值。事实上,取决于根Node
,设置这些值甚至不会阻止说Node
增长或萎缩。
来自Scene
的Javadoc:
应用程序必须通过设置root属性为场景图指定根节点。如果使用组作为根,则场景图的内容将被场景的宽度和高度剪切,并且更改为场景的大小(如果用户调整舞台大小)将不会更改场景图的布局。如果将可调整大小的节点(布局区域或控件)设置为根,则根的大小将跟踪场景的大小,从而导致内容在必要时被中继。
如果你想限制Stage
的大小,你需要通过设置Stage
的适当属性来实现它:minWidth
,minHeight
,maxWidth
和maxHeight
。由于你设置minWidth = maxWidth
和minHeight = maxHeight
,最好使用Stage.setResizable(false)
(如Bernhard's answer中所述)。此选项还可以防止Stage
最大化,因为设置最小/最大尺寸属性不起作用。虽然在我的机器上,属性确实阻止了Stage
在最大化时生长,但它导致Stage
跳到左上角。
由于您无法访问Scene Builder使用的预览Stage
(据我所知),我认为您不能限制预览的大小。然而,你可能能够处理的一件事是预览Stage
在关闭时打开它之前的大小。我不确定为什么这是默认/不可改变的行为,但我猜它是由每次使用相同的Stage
引起的。要将Stage
调整为首选大小,您可以访问:
Preview -> Preview Size -> Preferred Size (Width x Height)
这需要显示预览,否则禁用菜单项。
您可以在舞台上设置.setResizable(false);
,应该有所帮助。