JavaFX 8,如何在Splitpane中隐藏窗格?

时间:2014-12-07 22:09:48

标签: javafx-8 splitpane

我有一个从FXML创建的splitpane,它由从左到右的三个窗格组成。我希望能够隐藏最右边的窗格,但我找不到任何隐藏它的东西。如果我关闭可见性,它会隐藏窗格内容。我想要的是暂时隐藏它,以便直观地删除窗格。

作为临时解决方法,我将分隔线移动到100%,但这会使分隔线可见。另一个副作用是,如果我调整主窗口的大小,分隔符不会保持在最右边的位置。

有关在splitpane中隐藏一个窗格的任何提示吗?

关于在没有splitpane的情况下实现此目标的最佳方法的任何提示(最右边的窗格在未隐藏时需要调整大小)。由于我是Java / JavaFX的新手而不是编程,因此可以理解技术/容器的一般指示:)


1 个答案:

答案 0 :(得分:13)

似乎我找到了它,甚至认为这不是一个简单的隐藏/显示协议。我的splitpane名为“mainSplitPane”,我要隐藏/显示的是第三个。在初始化控制器时,我检索第三个窗格并将其存储在“componentsPane”中。

在controllerclass中声明:

Node componentsPane;

在控制器类的初始化方法中调用:

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

要隐藏的代码:

mainSplitPane.getItems().remove(componentsPane); 

以及显示的代码:

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

副作用是我必须设置dividerposition,因为它被删除了。