簡體   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