JavaFX显示并隐藏节点

时间:2017-12-26 13:35:44

标签: java javafx

这是基于Oracle Layout Tutorial,其中HBox有两个按钮。

我添加了两个节点(nodeCurrent和nodeProjected),但是我无法实现逻辑来显示/隐藏主布局中的nodeCurrent / nodeProjected。例如:

buttonCurrent.setOnAction(new EventHandler<ActionEvent>() {
        @Override public void handle(ActionEvent e) {
            nodeProjected.setVisible(false);
            nodeCurrent.setVisible(true);
        }

我也试过`setManaged。但是,无论我尝试它,它都无法正常工作。那么,在JavaFX中为节点实现显示/隐藏切换的正确方法是什么?或者是否有一种在JavaFX中显示/隐藏窗格的智能方法?

更新

澄清一下。这些被定义为public:

public GridPane root;
public GridPane dataform;
public GridPane search;

并添加到root:

dataform = addDataForm();
root.add(dataform, 0, 1);
search = addSearchForm();
search.setVisible(false);
root.add(search, 0, 1)

有两个按钮可以切换可见性:

btnSearch.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                dataform.setVisible(false);
                search.setVisible(true);
                System.out.println("Search!");
            }
        });

但点击它们之后,我得到了:

enter image description here

1 个答案:

答案 0 :(得分:0)

我自己会回答这个问题,因为我在FXML中重新创建了GUI并复制了这个问题。解决方案是在另一个父网格GridPane中添加GridPanes,然后添加到根目录:

- root
-- GridPane
--- GridPaneDataForm
--- GridPaneSearchForm