繁体   English   中英

如果内容发生更改,则自动调整舞台大小

[英]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:

https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxwc2NoaW1wZjk5fGd4OjVlODJiOTg2OTVlYzky

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM