[英]DefaultMutableTreeNode icon
我在從DefaultMutableTreeNode
對象構建的JContentPane
顯示了一個JTree
。 該樹旨在顯示本地文件系統。 數據應按要求加載,因此在用戶要擴展數據時應如此。 這很好用,但是只要節點中沒有子項,它就會顯示一個文件圖標,並在插入子項后變成文件夾圖標。
盡管還沒有子項,如何使節點始終顯示文件夾圖標?
您需要為樹實現單元格渲染器。 因此,您可以為節點定義圖標。 請參閱此處的表示例(樹也具有setCellRenderer
方法)
使用DefaultMutableTreeNode(或TreeNode的自定義實現),將文件與空文件夾區分開的方法是它的allowChildren屬性:
// get a list of files
File[] files = new File(".").listFiles();
// configure the nodes' allowsChildren as the isDir of the File object
for (File file : files) {
root.add(new DefaultMutableTreeNode(file, file.isDirectory()));
}
// configure the TreeModel to use nodes' allowsChildren property to
// decide on its leaf-ness
DefaultTreeModel model = new DefaultTreeModel(root, true);
我用這個:
DefaultMutableTreeNode root = new DefaultMutableTreeNode ();
DefaultTreeModel treeModel = new DefaultTreeModel (root);
tree = new JTree (treeModel);
addFiles (root); // build the catalog tree recursively
treeModel.setAsksAllowsChildren (true); // allows empty nodes to appear as folders
同
if (file.isDirectory ())
newNode.setAllowsChildren (true);
在addFiles()例程中。 setAsksAllowsChildren(true)需要在樹構建之后出現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.