如果你是用java的话查看javax.swing.JTree应该是没有问题的。不知你在jCreator是用的什么类。如果你没有用过JTree的话,你可以学习下面的文章
http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html
http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html
veijerd你的代码能给我一份吗
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.event.TreeSelectionListener;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.tree.TreeSelectionModel;
import java.net.URL;
import java.io.IOException;
import javax.swing.JEditorPane;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JFrame;
import java.awt.*;
import java.awt.event.*;public class TreeDemo extends JFrame {
private JEditorPane htmlPane;
private static boolean DEBUG = false;
private URL helpURL; //Optionally play with line styles. Possible values are
//"Angled", "Horizontal", and "None" (the default).
private boolean playWithLineStyle = false;
private String lineStyle = "Angled"; public TreeDemo() {
super("TreeDemo"); //Create the nodes.
DefaultMutableTreeNode top = new DefaultMutableTreeNode("The Java Series");
createNodes(top); //Create a tree that allows one selection at a time.
final JTree tree = new JTree(top);
tree.getSelectionModel().setSelectionMode
(TreeSelectionModel.SINGLE_TREE_SELECTION); //Listen for when the selection changes.
tree.addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode)
tree.getLastSelectedPathComponent(); if (node == null) return; Object nodeInfo = node.getUserObject();
if (node.isLeaf()) {
BookInfo book = (BookInfo)nodeInfo;
displayURL(book.bookURL);
if (DEBUG) {
System.out.print(book.bookURL + ": \n ");
}
} else {
displayURL(helpURL);
}
if (DEBUG) {
System.out.println(nodeInfo.toString());
}
}
}); if (playWithLineStyle) {
tree.putClientProperty("JTree.lineStyle", lineStyle);
} //Create the scroll pane and add the tree to it.
JScrollPane treeView = new JScrollPane(tree); //Create the HTML viewing pane.
htmlPane = new JEditorPane();
htmlPane.setEditable(false);
initHelp();
JScrollPane htmlView = new JScrollPane(htmlPane); //Add the scroll panes to a split pane.
JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
splitPane.setTopComponent(treeView);
splitPane.setBottomComponent(htmlView); Dimension minimumSize = new Dimension(100, 50);
htmlView.setMinimumSize(minimumSize);
treeView.setMinimumSize(minimumSize);
splitPane.setDividerLocation(100); //XXX: ignored in some releases
//of Swing. bug 4101306
//workaround for bug 4101306:
//treeView.setPreferredSize(new Dimension(100, 100)); splitPane.setPreferredSize(new Dimension(500, 300)); //Add the split pane to this frame.
getContentPane().add(splitPane, BorderLayout.CENTER);
} private class BookInfo {
public String bookName;
public URL bookURL;
public String prefix = "file:"
+ System.getProperty("user.dir")
+ System.getProperty("file.separator");
public BookInfo(String book, String filename) {
bookName = book;
try {
bookURL = new URL(prefix + filename);
} catch (java.net.MalformedURLException exc) {
System.err.println("Attempted to create a BookInfo "
+ "with a bad URL: " + bookURL);
bookURL = null;
}
} public String toString() {
return bookName;
}
} private void initHelp() {
String s = null;
try {
s = "file:"
+ System.getProperty("user.dir")
+ System.getProperty("file.separator")
+ "TreeDemoHelp.html";
if (DEBUG) {
System.out.println("Help URL is " + s);
}
helpURL = new URL(s);
displayURL(helpURL);
} catch (Exception e) {
System.err.println("Couldn't create help URL: " + s);
}
} private void displayURL(URL url) {
try {
htmlPane.setPage(url);
} catch (IOException e) {
System.err.println("Attempted to read a bad URL: " + url);
}
} private void createNodes(DefaultMutableTreeNode top) {
DefaultMutableTreeNode category = null;
DefaultMutableTreeNode book = null; category = new DefaultMutableTreeNode("Books for Java Programmers");
top.add(category); //original Tutorial
book = new DefaultMutableTreeNode(new BookInfo
("The Java Tutorial: Object-Oriented Programming for the Internet",
"tutorial.html"));
category.add(book); //Tutorial Continued
book = new DefaultMutableTreeNode(new BookInfo
("The Java Tutorial Continued: The Rest of the JDK",
"tutorialcont.html"));
category.add(book); //JFC Swing Tutorial
book = new DefaultMutableTreeNode(new BookInfo
("The JFC Swing Tutorial: A Guide to Constructing GUIs",
"swingtutorial.html"));
category.add(book); //Arnold/Gosling
book = new DefaultMutableTreeNode(new BookInfo
("The Java Programming Language", "arnold.html"));
category.add(book); //FAQ
book = new DefaultMutableTreeNode(new BookInfo(
"The Java FAQ", "faq.html"));
category.add(book); //Chan/Lee
book = new DefaultMutableTreeNode(new BookInfo
("The Java Class Libraries: An Annotated Reference",
"chanlee.html"));
category.add(book); //Threads
book = new DefaultMutableTreeNode(new BookInfo
("Concurrent Programming in Java: Design Principles and Patterns",
"thread.html"));
category.add(book); category = new DefaultMutableTreeNode("Books for Java Implementers");
top.add(category); //VM
book = new DefaultMutableTreeNode(new BookInfo
("The Java Virtual Machine Specification",
"vm.html"));
category.add(book); //Language Spec
book = new DefaultMutableTreeNode(new BookInfo
("The Java Language Specification",
"jls.html"));
category.add(book);
} public static void main(String[] args) {
JFrame frame = new TreeDemo();
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
frame.pack();
frame.setVisible(true);
}
}