如何在 ControlsFX (JavaFX 8) 中使用 BreadCrumbBar
How to use BreadCrumbBar in ControlsFX (JavaFX 8)
我是一名 Java 初学者,正在尝试使用 ControlsFX 中的 BreadCrumbBar 在我使用 JavaFX 8 制作的桌面应用程序中制作导航栏。我似乎不能能够让酒吧按照我想要的方式工作,并且在线搜索教程没有结果。我找到了 API,但没什么用。
我的代码附在下面:
@FXML
private BreadCrumbBar bread;
private TreeItem<String> tree, tree1, tree2;
@FXML
private void initialize(){
tree = new TreeItem<String>("Log In");
tree1 = new TreeItem<String>("Language Selection");
tree2 = new TreeItem<String>("Patient List");
tree.getChildren().addAll(tree1, tree2);
bread.setSelectedCrumb(tree);
}
public void refresh(){
bread.setSelectedCrumb(tree.nextSibling(bread.getSelectedCrumb()));
}
对于登录屏幕,该栏显示应有的样子,仅显示 "Log In" 作为所选 crumb.I 每次我想切换到 class 时从主 class 调用刷新下一个面包屑按钮,但当我从第一个屏幕继续前进时,该栏就消失了。它不应该将选定的面包屑设置为树的下一个兄弟,即 tree1 吗?
如果有人知道如何配置自动导航功能,那也很有帮助。 (如果容易实现的话可能比整理自己的代码更有帮助)
谢谢!
BreadCrumbBar 使用树来显示导航,因此您应该创建相应的 TreeItem。
这是一个 3 层树的示例:
TreeItem<String> root = new TreeItem<String>("Root");
TreeItem<String> item1 = new TreeItem<String>("Item 1");
TreeItem<String> item11 = new TreeItem<String>("Item 1.1");
TreeItem<String> item12 = new TreeItem<String>("Item 1.2");
item1.getChildren().addAll(item11, item12);
TreeItem<String> item2 = new TreeItem<String>("Item 2");
root.getChildren().addAll(item1, item2);
然后你就有了一棵图形化的树,如下所示:
<item11>
/
<item1>
/ \
<root> <item12>
\
<item2>
当您使用 BreadCrumbBar.setSelectedCrumb(TreeItem<?>)
时,您 select
the bottom-most path node (the node on the most-right side in terms of the bread crumb bar)
所以如果你使用 breadcrumb.selectedCrumbProperty().set(root);
你会得到:
如果你使用 breadcrumb.selectedCrumbProperty().set(item11);
你会得到:
希望对你有帮助,其实我也在想办法弄清楚它是如何工作的^^
我是一名 Java 初学者,正在尝试使用 ControlsFX 中的 BreadCrumbBar 在我使用 JavaFX 8 制作的桌面应用程序中制作导航栏。我似乎不能能够让酒吧按照我想要的方式工作,并且在线搜索教程没有结果。我找到了 API,但没什么用。
我的代码附在下面:
@FXML
private BreadCrumbBar bread;
private TreeItem<String> tree, tree1, tree2;
@FXML
private void initialize(){
tree = new TreeItem<String>("Log In");
tree1 = new TreeItem<String>("Language Selection");
tree2 = new TreeItem<String>("Patient List");
tree.getChildren().addAll(tree1, tree2);
bread.setSelectedCrumb(tree);
}
public void refresh(){
bread.setSelectedCrumb(tree.nextSibling(bread.getSelectedCrumb()));
}
对于登录屏幕,该栏显示应有的样子,仅显示 "Log In" 作为所选 crumb.I 每次我想切换到 class 时从主 class 调用刷新下一个面包屑按钮,但当我从第一个屏幕继续前进时,该栏就消失了。它不应该将选定的面包屑设置为树的下一个兄弟,即 tree1 吗?
如果有人知道如何配置自动导航功能,那也很有帮助。 (如果容易实现的话可能比整理自己的代码更有帮助)
谢谢!
BreadCrumbBar 使用树来显示导航,因此您应该创建相应的 TreeItem。
这是一个 3 层树的示例:
TreeItem<String> root = new TreeItem<String>("Root");
TreeItem<String> item1 = new TreeItem<String>("Item 1");
TreeItem<String> item11 = new TreeItem<String>("Item 1.1");
TreeItem<String> item12 = new TreeItem<String>("Item 1.2");
item1.getChildren().addAll(item11, item12);
TreeItem<String> item2 = new TreeItem<String>("Item 2");
root.getChildren().addAll(item1, item2);
然后你就有了一棵图形化的树,如下所示:
<item11>
/
<item1>
/ \
<root> <item12>
\
<item2>
当您使用 BreadCrumbBar.setSelectedCrumb(TreeItem<?>)
时,您 select
the bottom-most path node (the node on the most-right side in terms of the bread crumb bar)
所以如果你使用 breadcrumb.selectedCrumbProperty().set(root);
你会得到:
如果你使用 breadcrumb.selectedCrumbProperty().set(item11);
你会得到:
希望对你有帮助,其实我也在想办法弄清楚它是如何工作的^^