【问题标题】:How to implement a tiered "selection tree" in Swing? (Or: is there an existing implementation?)如何在 Swing 中实现分层的“选择树”? (或者:是否有现有的实现?)
【发布时间】:2010-06-10 16:28:26
【问题描述】:

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

我知道我可以通过创建一个自定义 TreeCellRenderer、一个自定义 TreeCellEditor 和一个自定义 TreeModel 来做到这一点——但这似乎是一项非常艰巨的工作。有什么好的现成的实现我可以使用吗?

谢谢!

【问题讨论】:

    标签: java swing jtree


    【解决方案1】:

    你也可以看看JIDE components,看看他们有没有类似的东西。

    【讨论】:

    • JIDE Common Layer 包含一个 CheckBoxTree 并且是开源的。
    • Bingo - CheckBoxTree 正是我所需要的。谢谢!
    【解决方案2】:

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

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

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

    【讨论】:

    • 看起来筋疲力尽了,我什至没有看到你已经标记了 jTree。据我所知,这是最好的方法。很抱歉告诉你一些你已经知道的事情。
    • :) 这不是传统,Google 每次都会在 1.4 上为您提供结果(因为我猜它们之间的联系更紧密)替换 s/1.4.2/6 使用给您 404 但我猜 Sun(叹息,oracle)通知趋势,现在将您重定向到正确的趋势。 :...只是...如果有人想知道:P
    • @Support - 多语言 SO:Oscar,我的错是太省略了。我的意思是使用JTree 的传统方法。
    • 哦,我明白了:P 我真的不知道我为什么要写那条评论,直到我即将完成它......所以......我只需点击发送:P
    【解决方案3】:

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

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

    附录:看你的图片,你或许可以使用CheckRenderDataProvider

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-27
      • 2010-09-07
      • 1970-01-01
      • 1970-01-01
      • 2017-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多