我有一些DefaultMutableTreeNode的。 在程序運行時,我可以更改文本並重新驗證它。 但是,如果文本太長,例如文本「測試」,文本將顯示爲「te ...」。DefaultMutableTreeNode-文字太長?
我該如何改變?
感謝
我有一些DefaultMutableTreeNode的。 在程序運行時,我可以更改文本並重新驗證它。 但是,如果文本太長,例如文本「測試」,文本將顯示爲「te ...」。DefaultMutableTreeNode-文字太長?
我該如何改變?
感謝
一定要仔細閱讀tutorial about JTree和實例如何使用TreeCellRenderer
如果你真正的問題,那麼請更新您的問題和SSCCE form
其根本原因在於樹節點的佈局被緩存,並且緩存未更新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
如果你正在改變正確的文本,即確保_model_通知文本應該出現全寬,只要樹的寬度足夠大 – kleopatra