问题标签 [jtree]

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 投票
2 回答
2935 浏览

java - 在运行时重新加载 JTree

我在与 GUI 类分开的类中创建了一个 JTree 并为其建模。JTree 的数据是从文件中提取的。

现在在 GUI 类中,用户可以将文件从文件系统添加到 AWT 列表。用户单击列表中的文件后,我希望 JTree 更新。JTree 的变量名称是 schemaTree。

我有选择列表中的项目的以下代码:

我已经更新了代码以对应于接受的答案。JTree 现在根据我在列表中选择的文件正确更新。

0 投票
1 回答
3257 浏览

java - JTree的选择路径

我已经使用 XSOM API ( https://xsom.dev.java.net )从 XML Schema 文件中加载了带有节点的 JTree 。

每次选择文件时,我都会执行以下操作:

schemaTree 是 JTree 的变量名。

XSDParser 的代码如下:

现在,每当在 JTree 中选择一个节点时,我都会执行以下操作:

但是现在无论我在树中选择哪个节点,我都会得到类似: [null, null, null, null] (取决于我走多远的层次结构)

对于一个简单的 JTree,这通常会打印出节点的路径,例如:[JTree, colors, red]

有人知道如何解决这个问题吗?

谢谢,帕特里克

0 投票
7 回答
16109 浏览

java - 在 JTree 中隐藏/过滤节点?

我有一个用 a 表示的数据对象TreeModel,我想在我的 -- 中只显示它的一部分,JTree为了争论,说叶子和他们的父母。如何隐藏/过滤不必要的节点?

0 投票
3 回答
6791 浏览

java - 当节点对象的状态发生变化时,如何动态更改 JTree 视图?

我正在实现一个 Java JTree 面板。该面板包含从一组树状数据结构构建的 TreeModel(组合列表 - 不同类)。我根据我定义的一组接口从外部 jar 实现中获取这些数据结构。

树节点包含一个复选框,用户可以选中该复选框以指示选中的节点和所有子节点都将变为“活动”,即由节点表示的对象应该做一些事情,比如从数据库中获取数据。

树节点也可以在不“激活”它们的情况下被选中,即不选中复选框。

最重要的是,程序的其他部分也可以切换数据模型对象的激活状态。因此,构建树模型的数据模型是激活状态的来源。这必须通过动态(取消)选中复选框来反映在树视图中。

现在,我如何实现这整个?谁应该成为哪些变化的听众?

现在,节点中的所有类都从一个包含激活字段的抽象类扩展而来。这是真正的数据源。当此字段更改时,应通知所有订阅的侦听器(EventListener),这包括复选框。

我还有一个 TreeSelectionModel,它基于默认的 TreeSelectionModel,但扩展了检查是否需要检查孩子/父母的功能。

我的问题可能不是很清楚,但这段复杂的代码也是如此。希望你能帮忙。

0 投票
2 回答
864 浏览

java - Swing:如何将 JTree 与 JTextPanes 一起用作节点?

JTree用作DefaultTreeCellRenderer单元格渲染器。
这个类是 的子类JLabel

我想使用JTree比 更复杂的元素JLabel,例如 JTextPane.

问题是:我不能子类化DefaultTreeCellRenderer,因为它仍然是一个JLabel.

写一个自己TreeCellRenderer的太复杂了。
为什么?因为:DefaultTreeCellRenderer有 17 个字段,并且不仅仅是实现TreeCellRenderer's getTreeCellRendererComponent(...)

你能想出什么简单的解决方案?

我需要树元素是JTextPanes 才能执行复杂的格式化。

0 投票
2 回答
351 浏览

java - 如何关闭 BasicTreeUI 上的密钥处理

BasicTreeUI(在 JDK 1.5 中)通过导航到树上以该字母开头的项目来处理 JTree 上的关键事件。关闭该行为的最直接方法是什么?

0 投票
2 回答
8879 浏览

java - 这些错误和警告图标作为 java 资源在哪里?

我有一个自定义树单元格渲染器,我用它来渲染自定义图标 JTree,我真的很喜欢 JOptionPane 分别为警告消息和错误消息显示的警告图标和错误图标。显然,我可以使用下面的代码来获取我自己使用的图标,但这很繁琐,需要我实例化我永远不会使用的对话框:

必须有更好的方法来获取这些图标作为资源,但我没有从 Java API 中找到一种简单的方法来做到这一点。有人有什么建议吗?

0 投票
2 回答
7880 浏览

java - 覆盖JTree双击以防止节点扩展?

看起来有两种默认机制可以在 JTree 中展开文件夹节点。一种是单击节点旁边的展开/折叠图标。另一种方法是双击节点本身。

有没有办法阻止这种第二种机制?我想覆盖节点上的双击,以便它执行某些操作(更新另一个显示以显示正在双击的节点的统计信息),并希望它展开/折叠树节点。(要明确一点:我不想阻止节点展开/折叠,我只想要求用户单击展开/折叠的图标。)我该怎么做?

0 投票
4 回答
17126 浏览

java - 带有复选框的 JTree

我需要将复选框添加到 JTree。自定义 TreeCellRenderer/TreeCellEditor 似乎是正确的方法。到目前为止,我在此网页中使用了 CheckBoxNodeRenderer 方法。它工作正常,除了两件事:

  1. 复选框下方的 + 上方还有额外的空格;我想让它和普通的 JTree 一样。
  2. 我想区分单击复选框本身(应该尝试切换复选框)和单击与复选框关联的文本(应该允许事件侦听器将其解释为单击相应的树节点并采取任何操作合适)

有没有办法做这些事情?我四处寻找带有复选框的 JTrees,找不到太多。JIDE 看起来不错,但在这种情况下我需要使用免费的开源软件(GPL 不行,LGPL 可以)。(或创建我自己的复选框树)

0 投票
1 回答
2299 浏览

java - 使用自定义 TreeCellRenderer(Java、Swing)在 JTree 中拖放反馈

我有一个从带有自定义 TreeCellRenderers 的 JTree 派生的类。我已经在该树中实现了拖放,因此用户可以重新排列树节点。

删除模式是DropMode.ON_OR_INSERT,因此用户可以在其他节点上或其他节点之间删除节点。当用户拖动节点时,如果指针指向节点之间,则会绘制一条蓝线,指示将插入节点的位置。如果指针位于节点上,则不指示将添加节点的位置。这只发生在我使用自定义 TreeCellRenderer 时。如果我使用 DefaultTreeCellRenderer,则拖放节点会在拖动过程中突出显示。

我在网上找到了一些示例,人们在其中存储当前在 JTree 中突出显示的节点并从 TreeCellRenderer 查询它,如果为应该突出显示的节点调用 TreeCellRenderer,则以不同的颜色呈现节点。

是否有更优雅的解决方案来突出显示放置节点?我还没有弄清楚 DefaultTreeRenderer 是如何做到这一点的——它似乎没有钩子来拖放功能。