我在樹實例化過程中看到了很多用於更改節點圖標的示例,但我想稍後動態更改單個節點的圖標。所以,在我主要的代碼我我的自定義渲染添加到我的樹:動態更改JTree中特定節點的圖標
// Icon I want to set nodes to later
ImageIcon checkIcon = new ImageIcon("check.jpg");
// Creates tree with my nodes
JTree tree = new JTree(nodes.top);
// Create custom renderer
Scenario1Renderer renderer = new Scenario1Renderer();
// Set to single tree selection
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
// Set tree to my custom renderer
//renderer.setRendererIcon(greenIcon);
tree.setCellRenderer(renderer);
我在渲染代碼
public class Scenario1Renderer extends DefaultTreeCellRenderer {
ImageIcon rendererIcon;
public void setRendererIcon(ImageIcon myIcon){
this.rendererIcon = myIcon;
};
public Component getTreeCellRendererComponent(
JTree tree,
Object value,
boolean sel,
boolean expanded,
boolean leaf,
int row,
boolean hasFocus)
{
Component ret = super.getTreeCellRendererComponent(tree, value,
selected, expanded, leaf, row, hasFocus);
//setIcon(rendererIcon) ;
return ret;
}
所以,很明顯,如果我把我的rendererIcon,它會畫我所有的樹實例化期間帶有圖標的節點。我反而希望某種方法可以在執行我的程序時稍後設置單個節點的圖標。
那裏,我看不出有什麼區別,不明白,什麼原因 – mKorbel 2013-02-19 22:18:03
*「我見過很多例子改變的圖標節點樹實例化過程中,但我想要一種方法來動態更改單個節點的圖標以後「*所以添加到渲染器的能力。我不明白這是如何特別的。我很驚訝你的研究沒有顯示出「動態」渲染細胞的例子。應該有大量的例子展示如何在運行時以不同的方式呈現數據,並且取決於內容。 – 2013-02-20 01:09:33