问题标签 [treecellrenderer]
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 - 在生成树后动态添加图标时调整 JTree 节点名称的大小
在我的代码中,根据条件,JTree
节点可能有也可能没有Icon
. 我的问题是当我想Icon
为节点设置时,节点名称的大小会减小并附加“ ... ”。
所以基本上,节点会根据图标大小重新计算其大小并拟合其余部分。
添加图标时,如何防止这种行为并允许节点扩大其大小?
这是没有/有图标的屏幕截图:
java - 奇怪的 DefaultTreeCellRenderer 行为,仅部分执行 getTreeCellRendererComponent()
我创建了一个 JTree,即使有多个根节点(这对我来说相当困难,因为这是我的第一个 JTree),并且准备好(我想)更进一步;一个细胞渲染器。
我尝试为每个节点设置一个图标,效果很好。现在我正在尝试检查它是什么类型的节点(不仅是叶子和分支),并构建我想要的图像文件名的字符串。isKlas()
现在总是返回 true,所以它应该是 klas_fold.png 或 klas_unfold.png。但是getTreeCellRendererComponent()
只是部分执行,因为文件路径永远不会被打印,也没有任何图标更改,它始终是默认值!
这是我的代码:
是的,它是一个内部类。
谢谢!
编辑:
我发现这是一个 ClassCastException 搞砸了事情。但这很奇怪,因为我像这样初始化 Tree new JTree({new TreeItem("params"), new TreeItem("params")});
:所以我应该能够将它们从 Object 转换回 TreeItem?(TreeItem 是我的类之一。它扩展了 DefaultMutableTreeNode)。
java - 更改 DefaultMutableTreeNode 的文本样式
我创建了一个自定义 JTree。可以过滤该树以仅显示那些包含给定条件(字符串)的节点。现在,有没有办法只加粗包含搜索字符串的 DefaulMutableTreeNode 部分?
如果树节点的标签为“StackOverflow”并且用户正在搜索包含“Stack”的节点,则“StackOverflow”节点将呈现“Stack”部分加粗。
如何做到这一点?
java - 是否可以自定义 JTree 节点?
我想尝试实现这样的树:树的每个节点都是一个自定义组件,由一个 JComboBox 和一个 JTextField 组成。每次我在 JComboBox 中选择一个项目时,这个节点都会生成三个新的子节点作为叶子。
有可能这样做吗?我曾尝试使用 TreeCellRender,但它似乎只是绘制组合框和文本字段,但组合框不可选择。
combobox - GTK CellRendererCombo 将值设置到适当的单元格中
我正在尝试做一个有几列的 TreeView。第一列是一个ComboBox,这意味着我使用Gtk.CellRendererCombo。问题是,当我从组合框中选择一个值时,我希望单元格中的文本从“”更改为我刚刚选择的值。如果在 Gtk.CellRendererCombo.Edited 事件中我将列 Text 字段设置为 EditedArgs.NewText,这是可行的。
问题是,每次我设置一个值时,我都会创建一个新行,并且我希望文本字段的行为与 Gtk.CellRendererText 中的行为一样,但事实并非如此。该列的每一行的值不是不同的,而是与 Gtk.CellRendererCombo.Text 中设置的值相同
Gtk.CellRenderer 不应该包含任何状态,所以好吧,从我想做的事情来看,使用 Text 字段是一个非常糟糕的主意。
但是,如果我从 Gtk.ListStore 中设置一些值,即我的 TreeView 的模型(这与 Gtk.CellRendererCombo 的模型不同)。设置的值永远不会显示在 ComboBox 的列中。
我希望 ComboBox 的单元格在其中进行了选择以显示值,但继续可编辑以供以后更改。
如果有人有办法做到这一点,我将非常感谢您的意见。谢谢。
更新:
我的想法是,因为 Gtk.CellRendererCombo 继承自 Gtk.CellRendererText 它只是忽略了单元格中设置的值。现在,我想我可以创建一个继承自 Gtk.CellRendererCombo 的自定义 MyCellRendererCombo 并在为渲染提供时使用单元格中设置的值,但是关于 Gtk.CellRendererText 和 Gtk.CellRendererCombo 之间差异的文档非常薄......我想我应该访问 C 中的实现以了解详细信息。
java - JTree:为各个组设置自定义打开/关闭图标
- 我知道如何在 JTree 中设置自定义叶子图标
- 我知道如何为所有组节点设置自定义关闭/打开图标
但是我不能根据组节点名称设置自定义打开/关闭图标,例如节点可以称为电子邮件(所以有一个信封图标很好)或者一组可以称为任务等等。
我试图通过覆盖getTreeCellRendererComponent
类的方法来做到这一点DefaultTreeCellRenderer
但是改变icon
当前node
节点只会影响下一个节点!
如何为各个组设置自定义打开/关闭图标?
请看一下我的代码:
雇员.java
CustomTreeNode.java
CustomeTreeCellRenderer.java
测试1.java
java - 更改JTree中某个节点的图标?
我有一个 JTree,它的节点是从 DefaultMutableTreeNode 驱动的。每个节点都可以验证或不验证。起初所有节点的图标都是相同的,但是,当我选择它们并按下验证按钮时,我将更改验证节点的图标 。我希望能够在每个节点上单击和写入,因此我不能使用 JLabel 来显示图标。我编写了以下代码,但它返回 NULLException。
百万谢谢。
java - JTree & JButtons - 当鼠标悬停在按钮上时出现错误的渲染
我对 JTree 和 JButton 有疑问 似乎当进入编辑模式并将鼠标悬停在 TreeCells 上的按钮上时,它会在按钮内渲染树的某些部分。即使在同一行中从一个按钮拖动到另一个按钮时,它也会将一个按钮呈现在另一个按钮之上。
这是一个简短的自我解释示例,您可以将其复制粘贴以查看我的意思。
即使我删除了这部分。我必须单击一个单元格才能进入编辑模式我仍然可以通过鼠标离开单元格并返回来获得效果。
我已经在这个 JTree 定制中花费了 4 天时间。但这真的让我很困惑,我怎么能通过输入按钮来停止渲染。
java - JTree 中自定义节点上的鼠标操作:jre6 和 jre7 之间的区别
JTree 使用 TreeCellRenderer 和 TreeCellEditor 显示三个自定义节点:
- 单个 JCheckBox
- 单个 JButton
- 由任何操作组件组成的 JPanel(这里是 North 上的 JCheckBox 和 South 上的 JButton)
截图:http: //i.imgur.com/9j6B2ji.png
如果使用 Java Runtime Environment 6,这样的树没有问题。
除了使用 Java Runtime Environment 7,当我单击 JPanel 节点内的 JButton 时,也会出现问题。JButton 的“单击”动画不会在您第一次单击 JPanel 时呈现(以及每次停止编辑具有 JPanel 的节点之后)。第一个节点 JCheckBox 和第二个节点 JButton 也可以与 jre6 和 jre7 完美配合。
我想让它在 jre6 中完全像以前一样工作,有解决方法吗?
注意:让按钮执行代码不是问题。
java - JTree getCellRenderderComponet 引用一个已移除的子项
我有一个带有自定义 TreeCellRenderer 的 JTree。
然后我在显示后将节点动态添加到树中。考虑只添加一个孩子的情况。
然后我也隐藏树根
稍后还有另一个选项可以删除这些节点
现在我遇到的问题是当树的根部只有一个孩子并且如果我选择删除那个孩子,那么在删除之后 getTreeCellRendererComponent() 方法仍然指向那个被删除的对象。有什么线索吗?