【发布时间】:2012-11-24 16:11:36
【问题描述】:
我正在学习如何使用 Java JTree,但我遇到了一个我无法弄清楚的小问题。 使用我在 Oracle 网站上找到的教程,我模仿了他们演示的树结构。问题是,我希望文件夹“网站”是一个空文件夹,但 JTree 将它显示为好像它是一个文件。如何告诉 JTree “网站”实际上是一个空文件夹?
更新
我已经开始制作一个简单的“联系人管理器”。我想要做的基本上是使名称看起来像文件夹(因为我想为每个文件夹添加信息),但不添加任何内容。即有些可能没有任何信息,但我仍然希望它们看起来像文件夹。
浏览器类的代码:
import java.awt.Component;
import java.io.File;
import java.util.Iterator;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
public class Browser extends JFrame implements javax.swing.tree.TreeModel {
private JTree tree;
ManagerOfContacts mngrOfContacts;
public Browser() {
//Generates the ManagerOfContacts and associated Contacts
Driver driver = new Driver();
mngrOfContacts = driver.getManagerOfContacts();
//---------------------------\\
DefaultMutableTreeNode contacts = new DefaultMutableTreeNode("Contacts");
createNodes(contacts);
tree = new JTree(contacts);
JScrollPane treeView = new JScrollPane(tree);
add(treeView);
setSize(400,400);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public void createNodes(DefaultMutableTreeNode top){
DefaultMutableTreeNode contactName;
Iterator<Contact> contactItr = mngrOfContacts.getIterator();
while(contactItr.hasNext()){
contactName = new DefaultMutableTreeNode(contactItr.next());
top.add(contactName);
}
}
public static void main(String[] args) {
Browser browsr = new Browser();
}
}
【问题讨论】:
-
您必须“玩”TreeCellRenderer。如果您可以发布一些代码以便我们可以正确指导您,那就太好了。
-
看看
allowsChildren -
我应该在哪里寻找“allowsChildren”?
-
目标是使用任何编程语言(包括 Java)尽可能快速轻松地创建分层文件夹/文档类型树,还是专门使用 Java JTree 来创建?
-
一开始我也是从Java开始的,后来决定如果树可以在浏览器中实时显示,而不需要任何浏览器插件、插件或扩展,那么它可以用在智能手机、平板电脑或台式机,并且更有用。同时,我认为让任何支持套接字的编程语言都可以使用它会使其更加有用。而且,最终结果就在这里,现在我们正在使用分层结构来创建基于 Web/云的实时应用程序。披露:我为 Accord Software, Inc. (accord.com) 工作