Java 同步JTable和JTree
有没有办法让JTable和JTree共享同一个模型,这样基础模型中的任何更改都会立即反映在这两个组件中?我不确定这是否是您想要的,但是Sun提供了一个关于创建树表的分为两部分的教程,它本质上是一个JTable,在第一列中有一个JTree渲染器。 教程链接: 编辑: 关于树表(一个在第一列中维护树的表组件,它允许根据用户对树的修改隐藏和显示行)的主题,我发现了一个由NetBeans实现的名为Java 同步JTable和JTree,java,swing,Java,Swing,有没有办法让JTable和JTree共享同一个模型,这样基础模型中的任何更改都会立即反映在这两个组件中?我不确定这是否是您想要的,但是Sun提供了一个关于创建树表的分为两部分的教程,它本质上是一个JTable,在第一列中有一个JTree渲染器。 教程链接: 编辑: 关于树表(一个在第一列中维护树的表组件,它允许根据用户对树的修改隐藏和显示行)的主题,我发现了一个由NetBeans实现的名为Outline。它很容易使用。一个简单的例子用了不到30分钟的时间来模拟。代码可以在中找到 以下是树桌的图
Outline
。它很容易使用。一个简单的例子用了不到30分钟的时间来模拟。代码可以在中找到
以下是树桌的图像:
接口不同,但是使用下面相同的数据结构来实现它们应该是完全可行的。如果您有一个类型
Obj
,它可以表示为树和表,您可以创建一个TableModel
和一个TreeModel
来观察对Obj
的更改并做出相应的响应,您可以让Obj
同时实现TableModel
和TreeModel
(尽管我不喜欢业务对象实现GUI对象),或者,您可以创建一个类,该类同时实现TableModel
和TreeModel
,并知道何时发生对Obj
的更改。假设您希望树节点包含每条记录的属性和每条记录的一行表,基于记录列表创建TableModel和TreeModel接口应该不会太难。本教程是否有帮助:
有人说过,最好的方法是创建某种数据结构(模型)来表示数据,然后让treemodel和tablemodel查看公共数据结构来提取数据。这样做将允许它们共享同一个模型,您只需在数据更改时触发正确的事件,以便两者都得到更新。看一看——可以对JTable和JTree使用事件列表。我不熟悉JTree渲染,但GlazedList的JTable部分非常可靠。您有计划将表的基于行的顺序映射到树的父子顺序吗?