【问题标题】:multiple column display in JListJList 中的多列显示
【发布时间】:2011-07-14 08:16:58
【问题描述】:

JList可以多列显示吗????

【问题讨论】:

  • 这取决于你所说的column
  • 有一个秘籍:如果使用等宽字体,可以测量左列最宽的条目,每个条目都可以填充空格,所以现在你有了准列。

标签: java swing jlist


【解决方案1】:

绝对!您需要调用 setLayoutOrientation 来指示列表在转到新行之前应该如何包装其数据。您可以使用 JList.HORIZONTAL_WRAP 或 JList.VERITCAL_WRAP。这告诉数据像往常一样显示(作为列表),然后在到达底部时换行。

如果您想将该调用与 setVisibleRowCount(-1) 结合使用,则可以在可用空间中显示尽可能多的项目。

【讨论】:

    【解决方案2】:

    使用专为此目的设计的JTable

    【讨论】:

    • 抱歉,JTable 不是为此目的而设计的。 JTable 设计用于具有不同数据的多个列,其中该行的所有列都相互关联。 OP 要求提供可以在多列中列出的单个值列表,以更好地利用屏幕空间,这是一个不同的目的。
    • @searchengine27 OP“接受”了答案,所以我认为他们比你更清楚自己想要什么。
    • 不管他接受不接受,你的回答根本没有回答他的问题。他需要修改他的问题以表明他的意思,如果是这样的话,这个答案是可以接受的。在目前的状态下,它没有回答他的问题。
    • @searchengine27,是的,问题已得到解答。您对问题的解释无关紧要,这不是您的问题。如果 OP 想使用 JList 来更好地节省屏幕空间,他可以“接受”其他任何一个显示如何使用包装的答案。在任何情况下,您都不能决定 OP 问题的意图。人们的英语水平不同,接受我理解他的问题意图的答案表示OP。
    【解决方案3】:

    比较 camickr 和 JasCav 的两个答案:

    • 如果您需要以某种方式链接在一起的多列数据(例如第一列用户名、这些用户的第二列图标),则使用 JTable 是正确的选择。
    • 如果您只是想通过填充相同数据的多列来更好地使用屏幕空间,请使用 JasCav 描述的包装 JList。

    这是一个包装好的图标对象的 JList:

    这是一个带有第二行图标的 JTable 和一个特殊的 TableCellRenderer:

    (均来自my current project。)

    【讨论】:

    • 您的“当前项目”链接链接到 apache 测试页面...
    猜你喜欢
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    • 2019-10-12
    • 1970-01-01
    • 2014-02-05
    • 2020-06-02
    • 2012-11-30
    相关资源
    最近更新 更多