[英]How to get components rendered inside JTree (Swing Component Hierachy)
出于某些特定目的,我试图通过仅访问Swing / AWT组件层次结构来操纵UI,而我被困在JTree中。
我有一个使用自定义TreeCellRenderer呈现的JTree,并且在每个节点中都有JCheckBox。
我正在尝试获取用于呈现特定节点的特定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.