问题标签 [jxtreetable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何在 jXtreetable 中插入/删除新行(节点)?
我正在尝试JXTreeTable
从 SwingLabs 库中使用org.jdesktop.swingx.JXTreeTable
。当我尝试在表中插入/删除节点时遇到问题。
事实是,当模型中的数据发生变化时,我应该有一个可以触发 JXTreeTable 的方法。但我没有找到这样的东西。谁能告诉我如何在 JXTreeTable 中添加或删除节点(父节点或子节点)?
PS:我的模型类扩展了AbstractTreeTableModel
. 我传入它的构造函数 aLinkedList
并使用此列表中包含的数据填充 JXTreeTable
java - JXTreeTable中的渲染器单元格在java中行内容的基础上
我使用JXTreeTable
fromorg.jdesktop.swingx
来显示层次结构数据,所以我有一些父节点和一些附加到它们的子节点。我想要的是renderer
对父节点和子节点有所不同。
示例:如果 JXTreeTable 显示父节点,则第一列应呈现为字符串,其他列使用 JCheckBox 否则,如果 JXTreeTable 显示子节点,则每个单元格都应呈现为字符串。
首先,我在 myTreeTableModel 中编写扩展了AbstractTreeTableModel
这段代码:
父节点中的一切都很好,但是即使在我想要一个空白单元格的子节点中,这也会显示一个空的 JCheckBox。返回null
方法getValueAt(....)
并不能解决问题。所以,我想使用 Renderer 类,但我不知道从哪里开始。我写了一个这样的伪渲染器:
我将其设置为:
谁能告诉我哪里错了或者给我一些解决这个问题的提示?感谢您的时间。
编辑:我试图System.out.println(...)
在方法中插入一个测试,getTableCellRendererComponent
但它从未被调用。所以 JTreeTable 从不运行这个方法。
java - 在 ScrollPane 中替换和刷新旧的 JXTreeTable
我在滚动窗格(gbc_constraints)中有一个 JxTreeTable,通过单击按钮,应该打开一个文件选择器窗口,然后用户选择一个 xml 文件,该文件应该被解析为一个新的 JxTreeTable。我想用新的替换旧的。但我正在努力使这些变化以某种方式可见。该程序不会明显地适应树,或者刷新或重新绘制它。我希望你能帮助我。
java - How can set background color of first column of JXTreeTable
I have a JXTreeTable and I have implements a custom Renderer.
So I have this code:
This is the code to create a JXTreeTable:
If I try to run this code I can show this:
If I try to open thi first Node I can see this:
I want this: 1) Show the complete text 2) How you can see, from the images, I want to set background color gray at all first column. How can I fixed it?
EDIT
The post is not duplicate because in the segnalation post there is JTree but in my post, I have JXTreeTable, it is different
java - 扩展 SwingX AbstractTreeTableModel 的自定义模型:GUI 中未显示某些节点
我要做的是实现一个自定义控件来编辑列表属性(1:n 关系)。由于我没有足够的声誉来发布截图,我会尽力描述它。它包含一个记录列表作为值,每个记录由一个 RecordPanel 表示,它基本上是记录的编辑表单。
控制菜单提供了添加、删除和复制记录以及浏览记录面板的可能性。仅显示活动的 RecordPanel。在活动 RecordPanel 的左侧,使用我的自定义 TreeTableModel(这是我的问题的原因)的 JXTreeTable 用于显示控件中包含的记录列表。值记录组成模型的叶子,父母可以从相应孩子的属性中导出。树可用于直接跳转到特定记录。
对于 TreeTableModel 的构造,我使用 XML 模板。例子:
该模型使用包含实际记录及其父节点和子节点的 TreeTableNode。因此,可以从节点构建完整的树结构。
XML 模板中包含的分支定义将用于创建 TreeTableBranch 对象,该对象知道如何检索分支父级和子级以及在树表中显示哪些字段。
以下是用于构建 NodeTreeTableModel 的关键方法。我没有包含 AbstractTreeTableModel 的重写方法。
最后,这里是用于绘制控件和更新树表的方法。
只要我从数据库中得到一个给定的值,一切都会按预期工作。模型、控件和 GUI 均已正确构建。但是,一旦我尝试向控件添加新记录,就会出现一个新因素:
如上所述,树中叶子的父母是从叶子的属性派生的。在上面 XML 模板中给出的示例中,药物的父级是 drugCharacterization。但是,当我创建一种新药时,drugCharacterization 当然是未知的。为了在树中显示它,我为这些新记录创建了虚拟父母(标记为 -undefined-)。一旦在编辑过程中定义了 drugCharacterization,就会更新树并将记录放置在适当的父级下。要创建 dummyParent,请参见 NodeTreeTableModel 中的方法 linkToParent 和 getDummyParent。
现在我的问题是:据我所知,dummyParents 在创建新记录时被创建并正确链接,新记录被添加到值中,并且可以通过浏览面板访问相应的 RecordPanel。但是,它们从未真正显示在 GUI 的树中。
应该有类似的东西:
但它只是不存在。我完全不知道,为什么会这样。
2015 年 9 月 8 日:如果我从数据库加载一个未定义父对象的对象,它会在 GUI 中正确显示。如果我在运行时添加一个,则不是。
我在树表节点上注册了几个关键侦听器,如果节点名称发生更改,它们会更新树。这适用于现有节点。尽管如此,在关键侦听器触发的那些重绘之后,新的未定义节点不会显示。
问题似乎出在 buildTreeTable 方法中。正如您在代码中看到的那样,我使用新的 treetablemodel 构建了一个新的树表。但显然旧结构用于这个新表。
如何让 TreeTable 使用新模型的结构正确重绘。我试图使其无效(),重绘(),更新UI()。都是徒劳的。
java - 如何在 JXTreeTable 的子节点设置字体和背景颜色
我有一个简单的 Java swing 应用程序。所以我有一个带有 JXTreeTable 的 JPanel。我可以插入这个 TreeTable,带有子节点的 soma 行,这没关系。
现在,如果我尝试运行我的应用程序,我可以看到:
这也没关系。所以,现在如果我尝试扩展一个或多个节点,我可以看到:
我想知道是否可以更改渲染(为节点子设置另一个背景或其他字体颜色。
这是我用来创建 JXTreeTable 的代码。
这是 CustomTreeTableEntralte 类:
这是TreeTableRenderer,我认为问题出在这个类中,因为如果我尝试执行Debug,我无法进入getTreeCellRendererComponent。
java - 如何在 Java 应用程序中设置 getTreeCellRendererComponent
大家好,我有一个带有自定义 DefaultTreeTableModel 的 JXtreeTable。
现在我想要这个:
- 使用打开文件夹图标(节点打开时)更改默认图标,关闭文件夹图标(节点关闭时)
- 我想在打开时更改子节点的所有行渲染器。
所以我有这个代码:
使用此代码,我没有正确的布局。如果我尝试运行我的应用程序,我会看到这个
我不明白为什么我在图标上还看到了像 com.mcsolution.beans.Entrata@11111 这样的 Object 字符串
编辑我用这个改变方法getTreeCellendereComponent:
现在我可以看到正确的图标,但我继续看到写入 com.mcsolution .....并且我无法使用子节点设置另一种字体。