2014-12-07 41 views
7

我有一個由FXML創建的分割面,包含三個面板,從左到右。我希望能夠隱藏最右邊的窗格,但找不到隱藏它的任何內容。如果我關掉可見性,它會隱藏窗格內容。我想要的是暫時隱藏它,所以窗格視覺上被刪除。JavaFX 8,如何在Splitpane中隱藏窗格?

作爲臨時解決方法,我將分隔線移動到100%,但這會使分隔線可見。另一個副作用是,如果我調整主窗口的大小,分隔線不會停留在最右邊的位置。

任何提示隱藏一個窗格在splitpane?

或者任何有關如何在不使用分離面板的情況下實現最佳方式的提示(最右邊的窗格在未隱藏時需要調整大小)。一般指針技術/容器,將不勝感激,因爲我是新來的Java/JavaFX的而不是編程:)


回答

12

看來我已經找到了,甚至認爲它不是一個簡單的隱藏/顯示交易。我的分割面板被命名爲「mainSplitPane」,我想隱藏/顯示的是第三個。在初始化控制器後,我檢索第三個窗格並將其存儲在「componentsPane」中。

聲明在controllerclass:

Node componentsPane; 

在controllerclass的初始化方法調用:

componentsPane=mainSplitPane.getItems().get(2); 

代碼以隱藏:

mainSplitPane.getItems().remove(componentsPane); 

和代碼顯示:

mainSplitPane.getItems().add(2, componentsPane); 
mainSplitPane.setDividerPosition(1, 0.8); 

一個副作用是,我因爲它刪除設置dividerposition。

+0

任何其他方法/指針/提示? – Backtomusic 2014-12-07 23:09:19