2011-10-05 23 views
0

我有一些DefaultMutableTreeNode的。 在程序運行時,我可以更改文本並重新驗證它。 但是,如果文本太長,例如文本「測試」,文本將顯示爲「te ...」。DefaultMutableTreeNode-文字太長?

我該如何改變?

感謝

+0

如果你正在改變正確的文本,即確保_model_通知文本應該出現全寬,只要樹的寬度足夠大 – kleopatra

回答

1

其根本原因在於樹節點的佈局被緩存,並且緩存未更新prop erly。可能f.i.如果節點是根據模型的腳改變發生,取消註釋nodeChanged看出差別

JTree tree = new JTree(); 
    DefaultMutableTreeNode root = (DefaultMutableTreeNode) tree.getModel().getRoot(); 
    int index = 0; 
    DefaultTreeModel model = (DefaultTreeModel) tree.getModel(); 
    String result = "\n"; 
    Enumeration<?> enumer = root.preorderEnumeration(); 
    while (enumer.hasMoreElements()) { 
     DefaultMutableTreeNode node = (DefaultMutableTreeNode) enumer.nextElement(); 
     String nodeValue = String.valueOf(node.getUserObject()); 
     node.setUserObject(nodeValue + ": " + index++); 
     //model.nodeChanged(node); 
    } 

在上下文的確切原因可能會有所不同,沒有辦法告訴沒有SSCCE

+0

謝謝,但我的問題是單元格寬度 – ioboi

+0

@daelleny介意闡述? – kleopatra

+0

不用寫我自己的cell-renderer,謝謝! – ioboi