[英]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.