2013-04-07 26 views

回答

1

您可能可以將圖片放入JLabels中,然後將標籤放入JPanel中,然後將面板放入JScrollPane中。

JLabel[] pics = // Put pictures into labels 
JPanel panel = new JPanel(); 
panel.setLayoutManager(/* FlowLayout if the pics are the same size; GridLayout otherwise? */); 
for (JLabel pic : pics) { 
    panel.add(pic); 
} 
JScrollPane scroll = new JScrollPane(); 
scroll.add(panel); 
// Disable the vertical scrollbar 
scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER); 
+0

雖然我喜歡你的想法,但從內存來看,'FlowLayout'不能很好地包裝,所以所有的圖像都會出現在一行中。這可能是也可能不是OP想要的,只是以爲我會指出 – MadProgrammer 2013-04-07 23:32:54

3

使用一個JList使用自定義渲染器來顯示圖標(實際上,默認渲染器甚至可以顯示圖標或文字,我不記得了)。該列表可以配置爲水平呈現對象。

閱讀How to Use Lists上的Swing教程部分。

+0

是的,DefaultListCellRenderer是基於JLabel的,所以它可以顯示圖標 – MadProgrammer 2013-04-07 23:32:07