这是基于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!");
}
});
但点击它们之后,我得到了:
答案 0 :(得分:0)
我自己会回答这个问题,因为我在FXML中重新创建了GUI并复制了这个问题。解决方案是在另一个父网格GridPane中添加GridPanes,然后添加到根目录:
- root
-- GridPane
--- GridPaneDataForm
--- GridPaneSearchForm