簡體   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