- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在Javafx中,如何在按钮单击事件上展开整个treeItem?
由于使用 Accordion 时滚动出现一些问题,我正在尝试使用 TreeItem 复制 Accordion 效果。请看下面我的代码片段-
final TreeItem<FlowPane> rootItem = new TreeItem<>();
root.setExpanded(true);
for (int i = 0; i < 12; i++) {
TreeItem<FlowPane> rootItem1 = new TreeItem<>(miniflowPane());
TreeItem<FlowPane> item1 = new TreeItem<>(flowPaneLarge());
rootItem1.getChildren().add(item1);
rootItem.setExpanded(false);
}
final TreeView<FlowPane> tree;
tree = new TreeView<>(rootItem);
tree.setShowRoot(false);
tree.setMinWidth(450.0);
tree.setMaxWidth(450.0);
HBox listHeaderBox = new HBox();
listHeaderBox.setAlignment(Pos.CENTER_LEFT);
Button b = new Button(">");
b.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
}
});
listHeaderBox.getChildren().add(b);
VBox listVBox = new VBox(5.0);
listVBox.getCHildren().addAll(listHeaderBox,tree);
Scene scene = new Scene(listVBox,500,650);
primartStage.setScene(scene);
primaryStage.show();
}
miniflowPane() 和 flowPane() 函数创建一些虚拟内容并返回 FlowPane。在Button b的点击事件中,如何展开rootItem的所有子项和孙项?
最佳答案
这个怎么样:
private void expandTreeView(TreeItem<?> item){
if(item != null && !item.isLeaf()){
item.setExpanded(true);
for(TreeItem<?> child:item.getChildren()){
expandTreeView(child);
}
}
}
现在在按钮处理程序中添加调用:
Button bExpand = new Button(">");
bExpand.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
expandTreeView(rootItem);
}
});
如果您也想添加折叠按钮:
Button bCollapse = new Button("<");
bCollapse.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
collapseTreeView(rootItem);
}
});
哪里:
private void collapseTreeView(TreeItem<?> item){
if(item != null && !item.isLeaf()){
item.setExpanded(false);
for(TreeItem<?> child:item.getChildren()){
collapseTreeView(child);
}
}
}
编辑
如果根不可见,则可以从其第一个子节点进行调用:
bExpand.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
for(TreeItem<?> child: rootItem.getChildren()){
expandTreeView(child);
}
}
});
bCollapse.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
for(TreeItem<?> child: rootItem.getChildren()){
collapseTreeView(child);
}
}
});
关于javafx如何在按钮单击事件上展开整个treeItem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27166838/
我正在使用 GWT ,我有树 Widget.TreeItems 在运行时添加。示例: 1.A 2.B 当我点击A时看起来像 1.A 1.ab 2.cd
我关注这个example to create a simple test with a Table where the foreground color was changed 。这按预期工作。 但是
我正在捕获右键单击事件以显示上下文菜单。我一直无法弄清楚的是,如何在显示上下文菜单之前右键单击实际选择 TreeItem。 感谢所有帮助。 private Tree tree = new Tree(
我目前正在使用 JavaFx-2 的 TreeView代表一个文件系统。 我想启用 drag and drop允许移动操作,但它看起来像 TreeItem不包括拖动事件监听器。我只能在 englobi
我想实现一棵树,里面有可检查的根节点和一些参数(实际上,本例中的参数并不重要)。因此,我制作一棵树,然后放置两列,然后放置一个 TreeItem。然后我需要放置一个带有复选框按钮的 TreeEdito
我有一个 TreeItem(一棵包含 100 多个 TreeItems 元素的树)。我想让用户能够隐藏(或再次显示)一些 TreeItems。 (因此用户只会看到他关心的项目)。 我看不到 TreeI
我正在 JavaFX 中使用 TreeView ,我想知道如何区分类型的节点,我的意思是,我有下一个结构: 1.-Agent 1.1-Use Case Diagram 1.1.1-U
我正在使用 TreeTableView (JavaFX 8)。有一些树节点,必须禁用才能选择。我已经尝试过选择事件,但它不起作用。请找到以下代码以获取更多信息。 treeTableView.getSe
我正在开发 Eclipse 插件。在这里我创建了一个单独的 View ,现在我想格式化树节点的颜色。 这些是 createpartcontrol 方法中的代码。 ScrolledComposite s
我有一个TreeViewer,其中当用户选择一个TreeItem并单击“展开”按钮时,应打开TreeItem下的整个层次结构,直到最后一个叶子找到节点。 我在 TreeViewer 上找到了一个现有方
我有一个 JFace TreeViewer,其中用户可以选择一个 TreeItem 并通过菜单选项检查是否是叶节点。 如何实现这一目标? 最佳答案 您可以通过以下方式从树查看器中获取当前选定的对象:
我正在尝试将包含文件路径的工具提示附加到 TreeItem ,这样当我将鼠标悬停在此 TreeItem 周围时,当我将鼠标悬停在其周围时,它将显示文件路径的文本。这在我的代码中不起作用,因为它提示我无
我有以下类(class): class TreeItem>{ private final ObservableList childs; private T parent; pu
我正在尝试创建一种方法来实现标题所说的功能。假设我有下面的 TreeView ,我想添加一个搜索功能,用户可以在其中给出例如一个值 desktop 并使用该方法获取具有给定值的第一个 TreeItem
有TreeView,每个元素都实现了Viewable接口(interface): public interface Viewable { enum ViewStyle { NE
在我的应用程序中,我有一个由树项组成的树结构。 我想做的是改变某些树元素的背景,如果他们的 userObject 满足某些条件。我遇到的问题是,当根树元素的背景发生变化时(仅根据根级别的树元素满足的标
我制作了这个 TreeView : TreeItem root = new TreeItem<>("roothidden"); treeView.setRoot(root);
编辑 #2:由于它看起来像一个错误,我已经在 javaFx-jira 中发布了错误报告.您必须拥有一个帐户才能访问该问题。如果有新信息,我会及时更新这篇文章。 原帖:我有一个带有按钮和 TreeVie
我有一个 TreeItem目的。 我想在里面放一个按钮。 Button button = new Button("Hello!"); root.setGraphic(button); // root
使用标准 GWT 2.0.3 API,如何向 TreeItem 添加 Clickhandler?我希望实现对服务器的异步调用,以检索展开的结果 TreeItem。 不幸的是FastTree在 GXT
我是一名优秀的程序员,十分优秀!