问题标签 [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.

0 投票
1 回答
824 浏览

java - 如何在 jXtreetable 中插入/删除新行(节点)?

我正在尝试JXTreeTable从 SwingLabs 库中使用org.jdesktop.swingx.JXTreeTable。当我尝试在表中插入/删除节点时遇到问题。

事实是,当模型中的数据发生变化时,我应该有一个可以触发 JXTreeTable 的方法。但我没有找到这样的东西。谁能告诉我如何在 JXTreeTable 中添加或删除节点(父节点或子节点)?

PS:我的模型类扩展了AbstractTreeTableModel. 我传入它的构造函数 aLinkedList并使用此列表中包含的数据填充 JXTreeTable

0 投票
0 回答
385 浏览

java - JXTreeTable中的渲染器单元格在java中行内容的基础上

我使用JXTreeTablefromorg.jdesktop.swingx来显示层次结构数据,所以我有一些父节点和一些附加到它们的子节点。我想要的是renderer对父节点和子节点有所不同。

示例:如果 JXTreeTable 显示父节点,则第一列应呈现为字符串,其他列使用 JCheckBox 否则,如果 JXTreeTable 显示子节点,则每个单元格都应呈现为字符串。

首先,我在 myTreeTableModel 中编写扩展了AbstractTreeTableModel这段代码:

父节点中的一切都很好,但是即使在我想要一个空白单元格的子节点中,这也会显示一个空的 JCheckBox。返回null方法getValueAt(....)并不能解决问题。所以,我想使用 Renderer 类,但我不知道从哪里开始。我写了一个这样的伪渲染器:

我将其设置为:

谁能告诉我哪里错了或者给我一些解决这个问题的提示?感谢您的时间。

编辑:我试图System.out.println(...)在方法中插入一个测试,getTableCellRendererComponent但它从未被调用。所以 JTreeTable 从不运行这个方法。

0 投票
1 回答
49 浏览

java - 如何在 JXTreeTable 上显示字符串

我想创建一个简单的 JXTreeTable,所以我构建了以下代码:

此代码尚未工作,因为在第一列中我无法显示描述“Locale 或 Finestre ....”但我可以看到像这张照片一样的对象

在此处输入图像描述

我该如何解决这个问题?

0 投票
1 回答
231 浏览

java - 在 ScrollPane 中替换和刷新旧的 JXTreeTable

我在滚动窗格(gbc_constraints)中有一个 JxTreeTable,通过单击按钮,应该打开一个文件选择器窗口,然后用户选择一个 xml 文件,该文件应该被解析为一个新的 JxTreeTable。我想用新的替换旧的。但我正在努力使这些变化以某种方式可见。该程序不会明显地适应树,或者刷新或重新绘制它。我希望你能帮助我。

0 投票
1 回答
424 浏览

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: enter image description here

If I try to open thi first Node I can see this: enter image description here

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

0 投票
0 回答
184 浏览

java - 如何在 JXTreeTable 上设置 setTreeCellRenderer

我有这段代码来创建自定义 JXTreeTable 并设置自定义 CellRenderer。这是代码:

这是图形结果:

在此处输入图像描述

你怎么能看到第一列,我看不到完整的字符串,也无法设置正确的背景颜色。

我该如何解决这个问题?

0 投票
0 回答
178 浏览

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()。都是徒劳的。

0 投票
1 回答
540 浏览

java - 如何在 JXTreeTable 的子节点设置字体和背景颜色

我有一个简单的 Java swing 应用程序。所以我有一个带有 JXTreeTable 的 JPanel。我可以插入这个 TreeTable,带有子节点的 soma 行,这没关系。

现在,如果我尝试运行我的应用程序,我可以看到:

在此处输入图像描述

这也没关系。所以,现在如果我尝试扩展一个或多个节点,我可以看到:

在此处输入图像描述

我想知道是否可以更改渲染(为节点子设置另一个背景或其他字体颜色。

这是我用来创建 JXTreeTable 的代码。

这是 CustomTreeTableEntralte 类:

这是TreeTableRenderer,我认为问题出在这个类中,因为如果我尝试执行Debug,我无法进入getTreeCellRendererComponent。

0 投票
0 回答
834 浏览

java - 如何在 Java 应用程序中设置 getTreeCellRendererComponent

大家好,我有一个带有自定义 DefaultTreeTableModel 的 JXtreeTable。

现在我想要这个:

  1. 使用打开文件夹图标(节点打开时)更改默认图标,关闭文件夹图标(节点关闭时)
  2. 我想在打开时更改子节点的所有行渲染器。

所以我有这个代码:

使用此代码,我没有正确的布局。如果我尝试运行我的应用程序,我会看到这个 在此处输入图像描述

我不明白为什么我在图标上还看到了像 com.mcsolution.beans.Entrata@11111 这样的 Object 字符串

编辑我用这个改变方法getTreeCellendereComponent:

现在我可以看到正确的图标,但我继续看到写入 com.mcsolution .....并且我无法使用子节点设置另一种字体。

0 投票
0 回答
63 浏览

java - 如何将特定行的字体更改为 JXteeTable

我的 java swing 应用程序中有一个 JXtreeTable。我想设置一个自定义单元渲染器,所以我想为父行设置一个自定义字体,我想为子节点(前导节点)设置另一个自定义字体,但我无法做到这一点。

这是我的代码:

如果我尝试运行此代码,我可以看到:

在此处输入图像描述

第一行有正确的字体,现在我想更改子行的字体。