2011-10-05 22 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