2011-03-13 88 views
11

是否可以在JList中顯示多列顯示?JList中的多列顯示

+3

這取決於什麼你的意思是[專欄](http://download.oracle.com/javase/tutorial/uiswing/components/list.html)。 – trashgod 2011-03-13 05:33:49

回答

10

使用專爲此目的設計的JTable

+0

對不起,'JTable'不是爲此設計的。 'JTable'專爲具有不同數據的多個列而設計,其中該行的所有列都相關聯。 OP要求提供單列數值列表,以列出多列,以更好地利用屏幕空間,這是一個不同的目的。 – searchengine27 2017-12-12 22:53:15

+0

@ searchengine27 OP「接受」了答案,所以我認爲他們知道他們比你想要的更好。 – camickr 2017-12-13 00:48:29

+0

他接受與否並不重要,他的問題沒有回答你的答案。他需要修改他的問題來表明他的意思,如果是這樣的話,這個答案是可以接受的。在目前的狀態下,它沒有回答他的問題。 – searchengine27 2017-12-13 01:03:57

6

絕對!您需要調用setLayoutOrientation,它向列表指示在進入新行之前應如何包裝其數據。您可以使用JList.HORIZONTAL_WRAP或JList.VERITCAL_WRAP。這告訴數據像往常一樣顯示(作爲列表),然後在到達底部時進行換行。

如果要將該調用與setVisibleRowCount(-1)組合,則可以在可用空間中顯示儘可能多的項目。

11

要比較兩個答案通過camickr和JasCav:

  • 如果您需要這在某種程度上是連接在一起的多列數據(如第一列的用戶名,這些用戶中的第二欄圖標),一個JTable是正確的使用方法。
  • 如果您只是想通過填充多列相同數據來更好地使用屏幕空間,請使用JasCav所描述的包裝JList。

這裏是圖標對象的包裹的JList:

wrapped JList

這裏是一個JTable與第二行中的圖標和一個特殊的TableCellRenderer:

jTable

(兩個從my current project。)