![](/img/trans.png)
[英]ScalaFX (JavaFX): Stage content does not resize on window resize
[英]Automatically resize stage if content is changed
我使用SceneBuilder和相应的场景和舞台创建了AnchorPane。 AnchorPane包含VBox。 所有尺寸的AnchorPane都是USE_COMPUTED_SIZE。 VBox的高度改为programmicaly,但场景和舞台的大小不会改变。
如何让它们自动调整为内容大小?
Application类的start()方法传递一个Stage对象(由向导调用stage)。 如果在该类(mStage)中声明一个Stage类型的成员变量,那么你在start()中做的第一件事就是保存它:
mStage =阶段;
您现在可以随时执行此操作(当然,在您的Application类中):
mStage.sizeToScene();
如果需要从控制器类中执行此操作,则可以为控制器提供对应用程序的引用(或者可能更好,让Application类实现控制器的接口)。 啊,你说,但我的Application类没有对控制器的引用,反之亦然)。 好吧,我从来不喜欢向导生成的代码,因为从XML文件中扩展控制器而不提供对它的引用,这使得使用document-view-controller模式很难。 如果您想了解如何获得对控制器的引用,请参阅以下幻灯片8(而非第8页)。 如果您还想要实例化然后指定自己的控制器(我有一个非常需要的用例),请参阅幻灯片10和11:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.