如何在Swing中实现分层“选择树”? (或者:是否有现成的实施?)

时间:2010-06-10 16:28:26

标签: java swing jtree

我需要一个Swing组件,它允许我显示一个树形结构的项目列表,并允许用户选择或取消选择这些项目的任意子集,并能够选择或取消选择整个子树的值通过选择子树的父级来组件。 (基本上,类似于Eclipse“Export JAR file”的对话框(相关对话框的图像是here - 我基本上想要“选择要导出的资源”组件,但是对于Swing应用程序。)

alt text http://i40.tinypic.com/6ylbvr.jpg

我知道我可以通过创建自定义TreeCellRenderer,自定义TreeCellEditor和自定义TreeModel来实现这一点 - 但这似乎是一项非常多的工作。我可以使用任何好的现成实现吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

您还可以查看JIDE components,了解他们是否有类似内容。

答案 1 :(得分:1)

听起来你在谈论一个JTree。它通常用于显示分层数据,例如文件结构,但可以修改它以执行其他操作。

http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html

http://java.sun.com/javase/6/docs/api/javax/swing/JTree.html

答案 2 :(得分:1)

我会考虑NetBeans的Outline。因为它来自JTable,所以您可以指定包含子树和叶节点的多个选择。

outline.getSelectionModel().setSelectionMode(
    ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

附录:查看图片,您可以使用CheckRenderDataProvider