请教 java 实现“可折叠的”的list 组件

java 实现“可折叠的”的list 组件,类似於于QQ的list列表,
现在我对 java界面编程不太熟悉,时间急,不知道jdk6有没有提供这个组件,
要是有的话,请告知,如果没有的话希望高手给个思路,要是有实现代码的话,
o(∩_∩)o... 最好!谢谢哈~!


第一次用javaeye的这个功能,不知道这样写符不符和javaeye的规矩,
不符合的话,希望这里的管理员不要删除这个提问~!谢谢哈~!

http://makeitjoy.iteye.com/blog/235254
JGroupPanel应该会是你要的东西 :D

用swing中的JTree可以模拟树状结构
可以看看我写的QQ :D
[code="java"]

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.MutableTreeNode;

public class MainClass extends JPanel {

public static void main(String[] args) {

MutableTreeNode root = new DefaultMutableTreeNode("QQ好友");
MutableTreeNode aNode = new DefaultMutableTreeNode("我的好友");
MutableTreeNode bNode = new DefaultMutableTreeNode("陌生人");
MutableTreeNode cNode = new DefaultMutableTreeNode("黑名单");

root.insert(aNode, 0);
root.insert(bNode, 1);
root.insert(cNode, 2);
aNode.insert(new DefaultMutableTreeNode("friend_a"), 0);
aNode.insert(new DefaultMutableTreeNode("friend_b"), 1);
bNode.insert(new DefaultMutableTreeNode("stranger_a"), 0);
bNode.insert(new DefaultMutableTreeNode("stranger_b"), 1);
cNode.insert(new DefaultMutableTreeNode("black_a"), 0);
cNode.insert(new DefaultMutableTreeNode("black_b"), 1);

DefaultTreeModel model = new DefaultTreeModel(root);
JTree tree = new JTree(model);

JFrame frame = new JFrame("QQ");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new JScrollPane(tree),BorderLayout.NORTH);
frame.pack();
frame.setVisible(true);

}
}

[/code]