我有一個標籤頁,其中動態加載標籤頁。每個選項卡都有一個錨板作爲其內容。 除了一個小的細節之外,它的工作原理非常好:當我調整主應用程序的大小時,標籤內容不會調整大小。調整選項卡內容的大小
因此,假設我最大化我的應用程序,標籤內容保留其「小」的大小。我怎麼能觸發標籤內容的大小調整,因爲它的根是一個錨板?
我是javafx世界的新手,在我的無知中,我曾嘗試在hbox中包裝anchorpane,並將該選項卡的內容設置爲無效。
任何想法?
我有一個標籤頁,其中動態加載標籤頁。每個選項卡都有一個錨板作爲其內容。 除了一個小的細節之外,它的工作原理非常好:當我調整主應用程序的大小時,標籤內容不會調整大小。調整選項卡內容的大小
因此,假設我最大化我的應用程序,標籤內容保留其「小」的大小。我怎麼能觸發標籤內容的大小調整,因爲它的根是一個錨板?
我是javafx世界的新手,在我的無知中,我曾嘗試在hbox中包裝anchorpane,並將該選項卡的內容設置爲無效。
任何想法?
這是如何調整組件大小的示例,但這個想法是相同的。
Rectangle rec = new Rectangle();
rec.widthProperty().bind(stackPane.widthProperty().subtract(50));
rec.heightProperty().bind(stackPane.heightProperty().subtract(50));
你必須讓主舞臺的大小和.bind(stackPane.heightProperty().subtract(50));
您可以動態地縮小尺寸。
但是我對這項技術很陌生,有些更有經驗的人可以給你更準確的答案。
將AnchorPane約束放入TabPane(不是選項卡,小心),以便根據其容器AnchorPane調整自身的大小。
如果您正在使用SceneBuilder,TabPane實例的佈局部分將對您有所幫助。如果您還動態創建TabPane,您可以設置此constaints爲AnchorPane.setLeftAnchor(theTabPane, ...)
,AnchorPane.setTopAnchor(theTabPane, ...)
等
我現在有一個可行的解決方案,雖然我敢肯定它不是這樣做最徹底的方法:
final Pane root = loader.getRoot();
tbsCore.widthProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> arg0, Number arg1, Number newValue) {
root.setPrefWidth(newValue.doubleValue());
}
});
tbsCore.heightProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> arg0, Number arg1, Number newValue) {
root.setPrefHeight(newValue.doubleValue());
}
});
請注意,「根」是我想要放在選項卡中的窗格,而「tbsCore」是TabPane。
這是我的第一個想法,但我認爲不能這樣做寬度/高度屬性只讀 – nablex