首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaFX TreeTableView在重复展开时不更新列

JavaFX TreeTableView是JavaFX框架中的一个控件,用于展示树形结构的数据,并支持表格的形式展示。在使用TreeTableView时,如果重复展开节点,但是列数据没有更新的话,可能是因为没有正确设置数据模型或者没有正确更新数据。

要解决这个问题,可以按照以下步骤进行操作:

  1. 确保正确设置数据模型:TreeTableView需要一个TreeItem作为根节点,并且每个节点都需要一个TreeItem作为父节点。每个TreeItem可以包含一个对象,用于存储节点的数据。在展开节点时,可以通过设置TreeItem的子节点来动态加载数据。
  2. 确保正确更新数据:当展开节点时,可以通过监听TreeItem的展开事件,在事件处理程序中更新节点的数据。可以通过设置TreeItem的子节点来实现动态加载数据。
  3. 确保正确刷新列数据:在更新节点数据后,需要手动刷新TreeTableView的列数据。可以通过调用TreeTableView的refresh()方法来实现。

下面是一个示例代码,演示如何正确更新TreeTableView的列数据:

代码语言:txt
复制
// 创建TreeTableView
TreeTableView<MyData> treeTableView = new TreeTableView<>();

// 创建根节点
TreeItem<MyData> rootItem = new TreeItem<>(new MyData("Root"));

// 设置根节点
treeTableView.setRoot(rootItem);

// 监听展开事件
treeTableView.setOnMouseClicked(event -> {
    TreeItem<MyData> selectedItem = treeTableView.getSelectionModel().getSelectedItem();
    if (selectedItem != null && !selectedItem.isLeaf() && !selectedItem.isExpanded()) {
        // 更新节点数据
        selectedItem.getValue().updateData();
        
        // 刷新列数据
        treeTableView.refresh();
    }
});

// 定义数据模型类
public class MyData {
    private StringProperty name;

    public MyData(String name) {
        this.name = new SimpleStringProperty(name);
    }

    public StringProperty nameProperty() {
        return name;
    }

    public void updateData() {
        // 更新数据
        // ...
    }
}

在这个示例中,当用户点击展开节点时,会触发展开事件的监听器。在监听器中,我们可以更新节点的数据,并通过调用refresh()方法刷新列数据。

对于JavaFX TreeTableView的更多详细信息和使用方法,可以参考腾讯云的JavaFX TreeTableView文档:JavaFX TreeTableView文档

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS开发UI篇--一个可扩展性极强的树形控件

一、简介 树形控件列表、多级菜单中使用比较常见,比如:国家-省份-城市 多级选择、学校-专业-班级 多级选择等等。...则表示该节点为根节点 nodeId : 每个节点自身的id号,是每个节点的唯一标示 name : 节点的名称 depth : 该节点所带的树形结构中的深度,根节点的深度为0 expand : 该节点是否处于展开状态...property (nonatomic , assign) int depth;//该节点的深度 @property (nonatomic , assign) BOOL expand;//该节点是否处于展开状态...1.TreeTableView *tableview = [[TreeTableView alloc] initWithFrame:CGRectMake(0, 20, CGRectGetWidth(self.view.frame...#import "TreeTableView.h" #import "Node.h" @interface TreeTableView ()<UITableViewDataSource,UITableViewDelegate

1.2K00
  • Using JavaFX UI Controls 12 Table View

    很多JavaFX SDK API种的类为表格表单中呈现数据。JavaFX 应用中对创建表格最重要的是TableView, TableColumn和TableCell这三个类。...例子 12-1中, 表格组件被添加到 VBox  的布局容器中,然而你也可以直接将其添加到应用场景中。 例子 12-1定义了3将用来存放地址簿的信息:一个联系人的 姓和名以及电子邮箱地址。...图 12-6新添加的实体 数据排序 TableView类提供了中数据的排序。用户可以通过点击头来对数据进行排序。第一次点击将进行升序排列,第二次点击将进行降序排列。第三次点击排列。...默认是排列。 用户可以对表格的多进行排序,同样也可以指定每数据排序操作中的优先级。如果想多行排列,用户按住Shift的同时点击想要排序的每一头。...setOnEditCommit 方法具有编辑 指派更新数据到相应表格单元格的能力。

    11.4K20

    JavaFX入门(五):使用CSS样式美化你的UI控件

    JavaFX的CSS样式基于W3C CSS的2.1版本,是CSS 2.1的一个子集,包含CSS 2.1的所有特性。同时JavaFX对该版本的CSS有所扩展。...---- 下面我们使用CSS美化一下我们JavaFX入门(三):使用Eclipse开发JavaFX程序 》一节中使用SceneBuilder拖拽出来的界面。...第一行第一是ImageVeiw用于显示Logo图标,第二是Label用于显示标题;第二行第一是一个Label(用户名),第二行第二和第三是一个TextFiled用于输入用户名;第三行第一是一个...Label(密码),第三行第二和第三是一个PasswordFiled用于输入密码。...第四行第二和第三是一个AnchorPane,AnchorPane中是两个Button,一个锚定到左边,一个锚定到右边。

    10.1K50

    JavaFX 11 发布,与 JDK 拆分后的首个正式大版

    此次更新主要内容如下: 重要更新JavaFX 模块指定:因为 JDK 不再包含 JavaFX,那么必须明确包含应用程序使用的 JavaFX 模块,详情见:https://openjfx.io/openjfx-docs...添加 API 以自定义 Spinner 控件的步骤重复计时。... JavaFX 11 中修改值步骤之前,必须在 Spinner 控件箭头按钮上按下鼠标一段默认持续时间,JavaFX 11 中已添加两个新属性“initialDelay”和“repeatDelay”来配置此操作...此外公告还提供了关于以下一些常见问题的解决方案: OpenJDK 11 环境下,JavaFX Ubuntu 18.04 上启用 Wayland 崩溃。...使用 jlink 创建的小 jdk 映像,Swing interop 失效。 详情查看 更新日志 。下载地址:https://openjfx.io/index.html

    2.3K40

    JavaFX 11发行说明

    添加API以自定义Spinner控件的步骤重复计时 JavaFX 11中修改值步骤之前,必须在Spinner控件箭头按钮上按下鼠标的默认持续时间。...已知的问题 JavaFXUbuntu 18.04上使用Wayland与OpenJDK 11崩溃 启用XWayland窗口服务器JavaFXUbuntu 18.04 Linux机器上崩溃。...,DateCell文本颜色未正确更新 控制 JDK-8208610 FXMLLoader :: getDefaultClassLoader中调用类的错误检查 FXML JDK-8129582 Linux...FXCanvas不会更新EmbeddedStageInterface的x / y 其他 JDK-8208294 使用jrt协议,安装本机库失败 其他 JDK-8180151 JavaFX错误地使用具有特定尺寸的两个...,WebView图像捕获因独立FX而失败 web JDK-8203698 访问某些网站JavaFX WebView崩溃 web JDK-8204856 PAGE_REPLACED事件之后,WebEngine

    6.6K60

    Java一分钟之-JavaFX:构建桌面GUI应用

    Java的世界里,JavaFX是一个强大的工具包,用于构建丰富、交互式的桌面应用程序。...环境配置错误 问题描述:初学者开始JavaFX项目,常遇到的问题之一是环境配置不正确,导致无法编译或运行JavaFX程序。 解决方案: 确保你的Java版本至少为Java 8或更高。...如果手动配置,请确保JavaFX库路径被正确添加到项目的类路径中。 2. 布局混乱 问题描述:设计界面,元素布局常常不如预期,导致界面混乱。...使用约束系统(如GridPane中的宽和行高约束)来精确控制组件位置和大小。 3. 事件处理不当 问题描述:事件监听器的设置不正确,导致按钮点击或其他交互行为没有响应。...代码示例:一个简单的JavaFX应用 下面是一个简单的JavaFX示例,展示了一个包含一个按钮和文本显示区域的应用,当点击按钮,文本会更新

    88020

    回顾Java 8 9 10的新特性,展望即将来临的11和明年的12【大牛经验】

    新的 UI 控件包括 DatePicker 和 TreeTableView 控件。 javafx.print 程序包为 JavaFX Printing API 提供了公共类。...这也消除了 JDK9 中有过的相当奇怪的情形。第一次更新是 JDK 9.0.1 , 非常符合逻辑。第二次更新是 JDK 9.0.4 ,不合逻辑。...原因是, JDK9 的版本计数模式下,需要留下空白以便应急或不在预期安排的更新使用。但既然没有更新是必须的,为什么不简单称之为 JDK 9.0.2 呢?...将JDK 6、7或8移植到新版本将会产生二进制兼容和源代码兼容。Oracle说,受到这些影响的开发者可以部署相应的Java EE版本。...JavaFX已经被移除,因此已经与Java JDK每年两次的更新无关。 想想12会有那些新特性,欢迎在下方留言!!!

    3.3K30

    甲骨文严查Java授权 、 openJDK 注意避坑

    2019年4月甲骨文宣布Java SE用户需要付费订阅,才能取得授权及更新,包括Java SE 7、8或11、12。...因此这些不能开放的源代码将它制作成插件,以供OpenJDK编译使用,你也可以选择不要使用plug。...(未验证) OpenJDK之坑 一个 Java SE 中稳定运行了一年多的项目,最近在OpenJDK上部署测试。一个案例失败。原因是缺少javafx.util。...解决方式也很简单,主要如下几种做法: 不要使用javafx.util这种OpenJDK里面没有的包; 下载javafx-sdk到服务器,编译javafx-sdk位置作为--module-path参数传入...; pom里面显式添加javafx依赖,这样服务器上用mvn编译,会把它从maven中央仓库拉到本地打包到你的工程里。

    1.8K50

    甲骨文严查Java授权,换openJDK要避坑

    2019年4月甲骨文宣布Java SE用户需要付费订阅,才能取得授权及更新,包括Java SE 7、8或11、12。...因此这些不能开放的源代码将它制作成插件,以供OpenJDK编译使用,你也可以选择不要使用plug。...(未验证) OpenJDK之坑 一个 Java SE 中稳定运行了一年多的项目,最近在OpenJDK上部署测试。一个案例失败。原因是缺少javafx.util。...解决方式也很简单,主要如下几种做法: 不要使用javafx.util这种OpenJDK里面没有的包; 下载javafx-sdk到服务器,编译javafx-sdk位置作为--module-path...参数传入; pom里面显式添加javafx依赖,这样服务器上用mvn编译,会把它从maven中央仓库拉到本地打包到你的工程里。

    2.2K40

    第68篇:javafx编写扫描器UI界面的线程死锁问题及坑点总结

    javafx控件安全,也能保证全局变量的线程安全。...最终得出结论,javafx的控件的取值过程基本上涉及线程安全问题,但是对于javafx组件的任何修改,必须考虑线程安全问题。...坑7:javafxjdk11至jdk17的编译问题 按照正常的编写javafx程序的流程,idea 2022版本编译出来的jar包,有时候会提示找不到主类,有时候会提示缺少JavaFX运行组件。...对于jdk8下的javafx的编译,很简单,直接编译成一个jar包就可以jdk8上双击运行,因为jdk是自带javafx库的,但是对于更高版本的jdk,比如说jdk11或者jdk17,默认是不带javafx...遇到线程安全问题,最好的方法就是写个demo程序高并发下反复测试。 2. 其余的总结及结论都在文章里每一部分给出了,这里不再重复

    35431

    前端框架你究竟选什么

    下面把前端的框架简单的一下。 1、flex Apache基金会今天发布了Flex 4.8版本,这是Adobe将Flex捐献给Apache基金会后发布的第一个版本。 ?...10、Dojo 国内应用好像不是很广,不过性能上应该没问题。 Dojo是一个用javascript语言实现的开源DHTML工具包。 ?...最大的好处是,设计AJAX网络应用程式,轻松简便的操作就像设计桌面程式一样。...ZK包含了一个以AJAX为基础、事件驱动(event-driven)、高互动性的引擎,同时还提供了多样丰富、可重复使用的XUL与HTML组件,以 及以 XML 为基础的使用接口设计语言 ZK User-interfaces...13、JavaFX Sun公司(已于2009年被Oracle公司收购)2008年12月05日发布了JavaFX技术的正式版,它使您能利用 JavaFX 编程语言开发富互联网应用程序(RIA)。

    2.4K61

    Power Query中避免出错的几种情况

    Power Query中对于数据的类型要求比较严格,如果在中间步骤不是计算必要的数据类型,可以暂时更改,而等到最后的时候进行数据类型的更改,这样也能够更方便的发现问题的所在。 ?...(七) 拆分数据 进行列的拆分时,大部分会使用类似Excel中的分割功能,把数据分割成多个,但是其中会有一个问题就是如果后续更新的数据需要拆分的数量不一致就有可能会漏拆分,如图13所示拆分成如图...但是如果下次的数据比本次所拆分的更多,那刷新就无法进行同步更新,就会出错。此时最好的做法就是把数据拆分成行,这样就能避免固定的的限制,如图15这样的操作。 ?...(九) 合并查询中的展开表 合并查询Power Query中使用的比例还是相对挺高的,使用后都会把匹配的数据给展开,这里就会涉及到一个注意事项,如图18所示,合并查询展开的公式, ?...不可见的符号 此外就是不可见的符号了,这种也会经常导致匹配错误或者删除重复未完全成功,所以执行删除重复项之前使用修整和清除来把数据给清洗下。

    5.4K41

    第30篇:swing组件添加javafx的webview浏览器组件方法

    1 JEditorPane这个组件是swing工具包中自带的,但是它能解析的html及css非常有限,N年没更新了,很多现在的网页,加载会出问题。...缺点就是,这个组件长时间操作,会莫名其妙地卡死,偶尔还会报各种channel异常错误,我始终没解决这个问题,而且所依赖的jar太大,大概100多M。...Swing与Javafx的对比 Swing图形工具包中,JFrame是一个顶层容器,JPanel是一个中间容器,JPanel上面可以放置各种Button按钮、Label标签等图形控件。...Javafx中,顶级容器是舞台Stage,也就是软件的界面窗口;Scene场景为中间容器,各种组件Button、Label成为Node节点,Node节点必须放在Scene场景中。...Swing添加Javafx的webview组件 Netbeans没法拖拽JFXPanel,那么我们可以这样,JFrame上先放一个JPanel,然后手动敲代码JPanel上添加一个JFXPanel,

    2.8K40

    JavaFX——(第一篇:介绍篇)

    Features JavaFX 2有一套完整的公共API显示最顶层。...的硬件加速是不可能的 完全硬件加速的路径,使用是可能的,但当它不是有效的,使用Java2D渲染路径,因为Java2D渲染路径已经分布在所有的Java运行时环境(jre)。...然而,性能更好的硬件渲染路径使用。 Quantum Toolkit:绑定Prism和windows工具,使它们可以用于JavaFX。它还负责线程相关的规则和事件处理。...媒体引擎组件显示图1的绿色部分,JavaFX 2中进行了重新设计并且改进了性能,进行了相关的扩展。...图3出了一部分可以使用的组件,它们都在javafx.scene.control下。 ?               图3 Layout 与其它常见布局类似。

    5.9K60

    你还在用B端大模型?OUT 了!!!用混元打造专属智能化桌面应用

    腾讯云推出的混元大模型大模型领域中的表现可谓出色。同时,JavaFX 作为 Java 生态系统中功能强大的 UI 框架之一,凭借其丰富的组件和灵活的布局能力,逐渐成为构建桌面应用的首选工具。...我们 ChatController 中处理用户输入,并调用混元大模型 API 获取响应,之后将响应结果更新到 UI。...为了将这一响应显示到 JavaFX 界面中,需要将返回的文本解析并格式化为消息气泡。 桌面应用程序中,保持用户界面的流畅性是至关重要的。当调用混元大模型,可能会遇到网络延迟或响应时间较长的问题。...选择你的模块,然后 Dependencies 标签页中点击 + 按钮,选择 Library,添加刚刚添加的 JavaFX 库。...将 JavaFX 与混元大模型结合,不仅能够为用户提供更智能、更高效的交互体验,还能显著提升桌面应用的功能与扩展性。未来,更多智能应用场景的实现将离不开这样的技术组合。

    39231

    Java JDK 11:现在可以使用所有新功能

    为了最大限度地降低兼容的风险,TLS 1.3默认会实现向后兼容模式。应用程序可以根据需要关闭或打开此模式。 Nashorn JavaScript引擎与JJS工具的弃用,旨在将来删除它们。...HTTP客户端(标准),它标准化了JDK 9中引入,并在JDK 10中更新和孵化的HTTP API客户端。...这将允许var 声明隐式类型lambda表达式的形式参数使用。 将扩展Java类文件格式以支持新的常量池形式CONSTANT_Dynamic。目标是降低成本和消除新开发形式中可物化类文件约束。...将JDK 6,7或8迁移到更高版本时会出现二进制和源兼容问题。Oracle表示,受这些风险影响的开发人员可以部署替代版本的Java EE技术。...JavaFX正在被删除,因此它与Java JDK的两年更新计划无关。 Oracle表示,将JavaFX作为独立的模块将使其更容易采用并为新贡献者扫清障碍。

    2K40
    领券