JList中的多列显示

Mah*_*pta 11 java swing jlist

是否可以在JList中显示多列????

cam*_*ckr 11

使用专为此目的而设计的JTable.

  • 抱歉,JTable不是为此目的而设计的。JTable是为具有不同数据的多个列而设计的,该行中的所有列都相互关联。OP要求一个可以在多列中列出的值的列表,以更好地利用屏幕空间,这是另一个目的。 (2认同)

Paŭ*_*ann 11

比较camickr和JasCav的两个答案:

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

这是一个包装的Icon对象的JList:

包裹JList

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

JTable中

(两者来自我目前的项目.)


Jas*_*Cav 10

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

如果要将该调用与setVisibleRowCount(-1)组合,则可以在可用空间中显示尽可能多的项目.