Javafx 2 树视图过滤

2023-12-22

如何在 JavaFX 2 中过滤节点TreeView?

我有一个TextField我想根据内容过滤所有节点(例如节点标签)TextField.

Thanks.


这是我编写的可重复使用的可过滤树项目类。

过滤器应该绑定在谓词属性, 你呢must use 获取子源操作树项目的方法。

public class FilterableTreeItem<T> extends TreeItem<T> {
    private final ObservableList<TreeItem<T>> sourceChildren = FXCollections.observableArrayList();
    private final FilteredList<TreeItem<T>> filteredChildren = new FilteredList<>(sourceChildren);
    private final ObjectProperty<Predicate<T>> predicate = new SimpleObjectProperty<>();

    public FilterableTreeItem(T value) {
        super(value);

        filteredChildren.predicateProperty().bind(Bindings.createObjectBinding(() -> {
            Predicate<TreeItem<T>> p = child -> {
                if (child instanceof FilterableTreeItem) {
                    ((FilterableTreeItem<T>) child).predicateProperty().set(predicate.get());
                }
                if (predicate.get() == null || !child.getChildren().isEmpty()) {
                    return true;
                }
                return predicate.get().test(child.getValue());
            };
            return p;
        } , predicate));

        filteredChildren.addListener((ListChangeListener<TreeItem<T>>) c -> {
            while (c.next()) {
                getChildren().removeAll(c.getRemoved());
                getChildren().addAll(c.getAddedSubList());
            }
        });
    }

    public ObservableList<TreeItem<T>> getSourceChildren() {
        return sourceChildren;
    }

    public ObjectProperty<Predicate<T>> predicateProperty() {
        return predicate;
    }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javafx 2 树视图过滤 的相关文章

  • Javafx 删除应用程序启动时的快速白屏

    使用 javafx 7 更新 60 操作系统 Windows 7 我刚刚从那里获取了 helloworldhttp docs oracle com javafx 2 get started hello world htm http docs
  • 转换为 UI 的记录器条目随着时间的推移停止更新

    我有一个 javafx concurrent Task 在后台运行一些代码并使用 java util logging Logger 提供有关其状态的信息 我需要在主线程的 UI 中显示此日志条目 我怎样才能做到这一点 这是我制作的一个简单的
  • JavaFX 2 自动列宽

    我有一个 JavaFX 2 表 显示人们的联系方式 假设有三列 名字 姓氏和电子邮件地址 当我的应用程序启动时 它会在表中填充有关系统中已有人员的几行数据 问题是列宽都是相同的 大多数时候 名字和姓氏会完整显示 但电子邮件地址会被剪掉 用户
  • 可展开的树形菜单列表

    我想要实现的目标如下 我想要一个树视图列表 它将出现在页面的左侧 当展开一个项目时 它的项目是从数据库加载的 我可以做这部分 所以基本上它会像这样 Category1 Category2 Category3 Category4 当用户点击
  • 如何在控制器类中的 JavaFX 应用程序中交换屏幕?

    如果一个JavaFX项目中有3个文件 FXML 文件 FXML 控制器和应用程序类 控制器如何响应按钮单击 效果非常好 并更改该单击上的屏幕 通常是通过stage setScreen 我没有参考阶段 它被传递给应用程序类的start Sta
  • 如何子类化 WPF 的 TreeViewItem 并在 treevview 中使用它

    我创建了一个简单的依赖属性 我想将其附加到 TreeViewitem 我已经为其他控件 例如按钮 做了类似的事情 但无法弄清楚如何在树视图中使用 TreeViewItem 而不丢失我定义的样式 通过下面的代码 我得到 用于类型 ErrorT
  • 如何将 TreeView 图标更改为文件夹图标?

    我正在尝试更改文件夹图标中 TreeView 的图标 此外 当它折叠时 它需要有一个打开的文件夹图标 我的树视图中有数据绑定项 代码是
  • 数据绑定到 WPF 树视图中的 SelectedItem

    如何检索在 WPF 树视图中选择的项目 我想在 XAML 中执行此操作 因为我想绑定它 You might think that it is SelectedItem but apparently that does not exist i
  • 树视图虚拟化

    我们正在尝试找到一种虚拟化的好方法TreeView 数据并不是真正的问题 因为它非常轻 每个项目大约 16 字节 问题是我们可能有数以万计的数据 尽管实际数据只占用 160 kb 内存 但树视图项目确实使用更多的内存 我们现在已经尝试使用
  • tkinter.ttk.Treeview根节点图标/图像不出现

    Problem 我无法让图标图像出现在 tkinter ttk Treeview 中根节点旁边 下面是我使用的测试代码 它执行时没有错误 但图像没有出现在根节点的左侧 我尝试过使用图像文件的完整路径名 但这不起作用 另外 我尝试使用 PIL
  • 如何在 sbt 中检测 JavaFX 运行时 jar

    我想做的是定义javaHome一开始 要么来自环境变量 要么来自默认的固定字符串 然后 稍后 我会使用该字符串 这是我尝试过的 javaHome Some file Library Java JavaVirtualMachines jdk1
  • 如何确定所选节点是 TreeView 中的子节点还是父节点?

    如何判断所选节点是子节点还是父节点TreeView控制 具体如何实现此类检查取决于您如何定义 子 和 父 节点 但每个都暴露了两个属性TreeNode提供重要信息的对象 The Nodes财产 http msdn microsoft com
  • WPF 中的多列树视图 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有人知道我在哪里可以获得 WPF 中的多列树视图之类的控件吗 夏普开发 http www icshar
  • WPF 中的自动展开树视图

    有没有办法在 WPF 中自动展开树视图中的所有节点 我搜索了 甚至没有在 treeview 属性中找到展开功能 Thanks 您可以设置 ItemContainerStyle 并使用 IsExpanded 属性
  • FXML load() 期间出现 JavaFX IllegalAccessException

    我有一个由以下代码调用的对话框窗口 DialogController是使用模式对话框窗口的辅助类 它主要将控制器引用与其窗口捆绑在一起 void handleServicesEdit ActionEvent event throws IOE
  • 企业 Web 应用程序中的 JavaFX - 经典网页的良好替代方案?

    我们为不同的客户开发了多种 Web 应用程序 从为那些可怜的管理员提供的简单 看起来很无聊的 CRUD 风格的 GUI 到为那些互联网用户提供的奇特的 AJAX 增强型 GUI 所有这些都基于 JSF 1 2 与 JBoss Seam 2
  • JavaFX 全屏 - 根据屏幕尺寸调整元素大小

    有没有什么方法可以使全屏 如果可能的话也调整大小 而不是重新排列所有内容 实际上它所做的是重新排列元素 例如调整大小但调整到整个屏幕 以形成实际的全屏模式 就像通常改变屏幕分辨率的游戏一样 以便按钮和文本根据屏幕 窗口的大小相应增长 另外
  • 双击 TreeNode 复选框上的行为

    我有一个TreeView填充有TreeNodes有图标和复选框 我一直在尝试禁用其中一些人的检查 取消检查能力 从而丢弃事件中的事件BerforeCheck方法 这工作正常 直到我双击复选框 复选框的图像与其真实状态相反 如果状态为Chec
  • 树视图上下文菜单命令未触发

    我有一个绑定到某些属性类型的 Observable 集合的树视图 有一个 HierarchicalDataTemplate 在树视图中显示数据 现在我需要显示每个 HierarchicalDataTemplate 项目的特定上下文菜单 我使
  • 用于制作代码编辑器的 JavaFX 相当于 JSyntaxPane 的什么?

    以前在 Swing 中 我使用过JSyntaxPane用于制作一个小型 Java 源代码编辑器 为了练习 我决定用 JavaFX 重做整个项目并添加对更多语言的支持 最好是尽可能多 不过好像没有什么类似的JSyntaxPane 一些研究让我

随机推荐

  • 元素是块级还是内联级?

    我在某处读到过 img 元素的行为与两者类似 如果正确的话 有人可以举例说明吗 确实 它们都是 或者更准确地说 它们是 内联块 元素 这意味着它们像文本一样内联流动 但也像块元素一样具有宽度和高度 在 CSS 中 您可以将元素设置为disp
  • 对空选择执行命令

    我正在开发一个专门的文本 HTML 编辑器 在 contenteditable div 中使用 Javascript 和 JQuery 我使用 execcommand 实现了不同的文本样式 粗体 斜体 这似乎仅在所选文本不为空时才有效 解决
  • 正则表达式包装报价

    我试图在 CSV 文件中的某些内容部分加上引号 当前布局如下所示 element1 element2 element3 element4 element5 element6 element7 element8 element9 elemen
  • Visual Studio 2012 Express for Desktop 有哪些安装程序选项

    因此 微软发布了用于桌面应用程序的 Visual Studio 2012 Express 这很好 但是如何为 Visual Studio Express 中构建的开源应用程序创建安装程序呢 默认情况下没有可用的安装程序模板 并且它们已禁用浏
  • 当我选择图像时,我的应用程序崩溃了?

    我对 Android Studio 完全陌生 我一直在尝试制作一个使用此链接给出的 scanLibrary 进行扫描的应用程序 并按照此处给出的说明进行操作https github com jhansireddy AndroidScanne
  • 如何创建用于运行时排序的表达式树?

    使用实体框架 4 我尝试根据成员名称集合实现动态排序 基本上 用户可以选择要排序的字段以及排序的顺序 我看过表达式树示例 但无法将其拼凑在一起 以下是一些细节 列名集合 public List
  • NodeJS:这段代码是否可以多核运行?

    我使用这个节点脚本作为我的项目的 运行程序 需要同时启动 停止三个脚本 现在我想知道从节点进程内部生成的 child process 是否会使用我的服务器拥有的多核 我有 90 的信心认为是 但安全总比抱歉好 var CP require
  • 如何在 C 中声明常量函数指针数组?

    我需要声明一个指向函数的指针数组 如下所示 extern void function1 void extern void function2 void void MESSAGE HANDLERS void function1 functio
  • Blob 不可写

    当我尝试使用 azure 进行 azure db 备份时rm command New AzureRmSqlDatabaseExport 我面临以下问题 Error encountered during the service operati
  • 使用 cordova 设置 android project.properties 文件中的值

    TL DR 我有一个针对 iOS 和 Android 的 cordova 应用程序 有没有办法使用config xml设置 cordova 生成的文件中的值platforms android project properties 更多细节
  • 将数据源设置为 MediaPlayer 中的原始 ID

    在 MediaPlayer create 方法中 可以使用原始文件的 id 但如何在 setDataSource 方法中使用它 参考源码android media MediaPlayer http grepcode com file rep
  • 使用 Instagram gem 获取所有用户的照片

    我想使用 Instagram gem 获取我的所有照片 https github com Instagram instagram ruby gem https github com Instagram instagram ruby gem
  • ios 6 uiwebview 使用 jquery scrolltop 滚动页面时显示背景

    我有一个网页显示在 UIWebView 中 该网页使用 jquery scrollTop 使用 1 6 4 版本的 jquery 在页面加载后将窗口滚动到指定位置 这在 4 5 之前的 xcode 上工作得很好 在我使用 xcode 4 5
  • Delphi 中的 System.IsConsole 什么时候为真?

    根据 System pas 它被记录为True if compiled as console app 在System pas中 还有一个赋值 IFDEF LINUX IsConsole True 我有一个奇怪的问题 使用 ShellExec
  • sqlalchemy 中的 python 继承

    所以我对 python 和 sqlalchemy 很陌生 我需要一些继承或混合 而不是继承 方面的帮助 我有一些伪代码 但我还没有真正取得任何进展 Base declarative base class ModelBase Base Bas
  • 给定两个顶点绕中心点旋转线

    我一直在尝试将一堆线旋转 90 度 它们一起形成多段线 每条线包含两个顶点 例如 x1 y1 和 x2 y2 我目前正在尝试做的是绕线的中心点旋转 给定中心点 x1 x2 和 y1 y2 由于某种原因 我不太懂数学 我无法让线条正确旋转 有
  • .NET 4.5 中的内存模型发生了哪些变化?

    我刚刚在 Peter Richtie 博客中读到了这令人费解的一行 我需要帮助才能理解其含义Prior to NET 4 5 you really programmed to the NET memory model http msmvps
  • 在 Flex 中循环元素内的元素

    我在 Flex 4 中有以下功能 protected function initEventHandlers void imageContainer addEventListener DragEvent DRAG ENTER acceptDr
  • 如何序列化/反序列化哈希图?

    我有一个包含数百万个条目的大型哈希图 我想将其持久化到磁盘 这样当再次从磁盘读取它时 我就没有将键值对再次插入到映射中的开销 我正在尝试使用谷物图书馆来做到这一点 但似乎HashMap http hackage haskell org pa
  • Javafx 2 树视图过滤

    如何在 JavaFX 2 中过滤节点TreeView 我有一个TextField我想根据内容过滤所有节点 例如节点标签 TextField Thanks 这是我编写的可重复使用的可过滤树项目类 过滤器应该绑定在谓词属性 你呢must use