gpt4 book ai didi

java - 如何在 ControlsFX (JavaFX 8) 中使用 BreadCrumbBar

转载 作者:搜寻专家 更新时间:2023-10-31 19:32:42 25 4
gpt4 key购买 nike

我是一名 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()));
}

对于登录屏幕,该条显示应有的样子,仅显示“登录”作为选定的面包屑。每次我想切换到下一个面包屑按钮时,我都会从主类调用刷新,但该条就消失了当我从第一个屏幕继续前进时。它不应该将选定的面包屑设置为树的下一个兄弟,即 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<?>)你选择

the bottom-most path node (the node on the most-right side in terms of the bread crumb bar)

所以如果你使用 breadcrumb.selectedCrumbProperty().set(root);你会得到:

enter image description here

如果你使用 breadcrumb.selectedCrumbProperty().set(item11);你会得到:

enter image description here

希望对您有所帮助,其实我也在尝试弄清楚它是如何工作的^^

关于java - 如何在 ControlsFX (JavaFX 8) 中使用 BreadCrumbBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30931401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com