2016-03-08 112 views
3

我試圖用javafx工作,並且爲我的界面創建了一個fxml。如何在fxml中設置容器的最小尺寸

但現在,我的窗格大小有問題。

<VBox minHeight="200.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"> 

例如在我的VBox和他們的孩子我指定一個minHeight。但是,當應用程序運行時,我可以使我的盒子小於200p,我不明白爲什麼。我如何正確設置一個最小高度或witdh?

感謝如預期中的JavaFX 一切,除了當你有一個可調整大小的窗格作爲場景的根(這可能是你的情況下)

回答

2

最小尺寸會工作。

如果你想使基於最小尺寸的根源沒有得到小,因爲一個封閉舞臺大小,你可以嘗試以下方法之一:

A.設置舞臺最小尺寸

stage.setMinWidth(200); 
stage.setMinHeight(200); 

如果需要,您可以通過舞臺裝飾的大小來調整最小高度和寬度值。

OR

B.定義一個ScrollPane作爲場景的根

ScrollPane scrollPane = new ScrollPane(content); 
scrollPane.setMinViewportWidth(200); 
scrollPane.setMinViewportHeight(200); 
Scene scene = new Scene(scrollPane); 

旁白:

可以這樣說,並非強制執行階段最小尺寸的行爲基於場景根的最小尺寸是「錯誤的」。也許這種約束可以通過桌面系統上的JavaFX系統來實施,但以直觀的方式這樣做很難,因爲通常人們不希望封閉窗口具有最小尺寸。在移動開發中,主舞臺通常全屏顯示在設備上。這使得基於場景根最小尺寸的受限舞臺尺寸相當難以實現,因爲場景根尺寸的大小實際上受操作系統限制和偏好的控制,除了諸如調整主應用窗口的尺寸之類的用戶動作之外。