繁体   English   中英

如何在JTree内部渲染组件(Swing Component Hierachy)

[英]How to get components rendered inside JTree (Swing Component Hierachy)

出于某些特定目的,我试图通过仅访问Swing / AWT组件层次结构来操纵UI,而我被困在JTree中。

我有一个使用自定义TreeCellRenderer呈现的JTree,并且在每个节点中都有JCheckBox。

样本JTree

我正在尝试获取用于呈现特定节点的特定JCheckBox对象,以编程方式更改其状态,我拥有的是JTree Component对象。

我找不到一种方法来创建JCheckBox组件以呈现特定的节点。

如果我继续递归地调用Container.getComponents(),则可达:

class javax.swing.JTree
class javax.swing.CellRendererPane
class javax.swing.tree.DefaultTreeCellRenderer

但是这些似乎并没有给出自定义渲染器渲染的组件。

正如@ JB-Nizet在评论中指出的那样,我通过使用反射更新自定义模型对象解决了我的问题。

Object modelObject = nodeToSelect.getUserObject();
Method method = modelObject.getClass().getMethod("setSelected", boolean.class);
method.invoke(modelObject,true);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM