JList 中的多列显示

Posted

技术标签:

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

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

【问题讨论】:

这取决于你所说的column。 有一个秘籍:如果使用等宽字体,可以测量左列最宽的条目,每个条目都可以填充空格,所以现在你有了准列。 【参考方案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 测试页面...

以上是关于JList 中的多列显示的主要内容,如果未能解决你的问题,请参考以下文章

关于JAVA中JLIST显示问题

java 中的那个Jlist怎么才能显示东西

是否可以更改 Java Swing jList 中项目的名称*显示*?

Java如何刷新jlist中的sql结果

JList不显示选定的值

查找 JList 的选中项并实时显示