【问题标题】:Multi-leveled (nested?) Jlist in JavaJava中的多级(嵌套?)Jlist
【发布时间】:2012-09-06 17:05:44
【问题描述】:

有没有办法创建一个具有多个(我的目标是三个)级别的 JList?

类似这样的:

level 1 item
  level 2 item
  level 2 item
     level 3 item
level 1 item
level 1 item
  level 2 item
  level 2 item
     level 3 item
     level 3 item

我的程序中有(最多)三级组件 GUI,我需要以某种方式使用户能够组织 GUI 的元素,将它们移动到彼此上方或下方。

可以用 JList 来完成吗,或者有其他方法可以处理这些事情吗? 也许是某个图书馆?

【问题讨论】:

  • 使用JTree swing 组件。这就是你处理这些事情的方式。

标签: java swing jlist jtree jtreetable


【解决方案1】:

我认为你可以,是的,但那样的话你会进入一个充满伤害的世界。从概念的角度来看,JList 自然地代表一个列表,而不是树,这意味着大多数排序逻辑都必须由您完成。您可能感兴趣的是JTree

【讨论】:

  • 我将能够更改各种组件的索引,然后按下按钮,将更改应用到 GUI,当然所有这些都使用正确的代码?
  • 如果索引是指树中的垂直位置,那么您可以采用现有树并将索引转换为树中的位置(反之亦然),尽管我仍然认为这很容易比重新发明 JList 更快。至少通过这种方式,您可以保证用户无法创建无效状态,假设所需要的只是它遵循树形结构。
【解决方案2】:

我认为您应该为此使用JTree

【讨论】:

    【解决方案3】:

    您可以实现自己的 ListCellRenderer 和您自己的 ListModel。

    http://docs.oracle.com/javase/6/docs/api/javax/swing/JList.html

    【讨论】:

    • -1,这里没有必要重新发明轮子……改用合适的 Swing 组件。
    • @user1329572 这取决于 OP 的其他要求。也许 JList 对他来说是最好的解决方案(很可能不是,但谁知道呢)。
    • @user1329572,为什么要对我投反对票?如果您担心他会重新发明轮子,请否决他的问题。或者提供一个分析器。
    • @km1 Hiw downvote 并没有那么错。您正在向 OP 展示一种很可能非常糟糕的方式。可能有一些(罕见的)场合是要走的路(这就是我没有投反对票的原因)。
    • 这是一个相关的两层ExtendedComboBox
    猜你喜欢
    • 2012-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 2018-05-25
    • 1970-01-01
    • 2018-04-05
    • 2021-08-09
    相关资源
    最近更新 更多