2011-12-14 74 views
0

顯示多個圖像我已搜查多處添加和顯示圖像上動態的​​JPanel,但不能得到適當的幫助。 基本上我有JPanel,我必須垂直顯示許多圖像,但它應該是動態的。的Java Swing - 動態上的JPanel

for(int i=0;i<macthedImages.length;i++) { 
    JLabel jLabel = new JLabel(new ImageIcon(macthedImages[i])); 
    searchResultPanel.add(jLabel); 
} 

macthedImages是bufferedImages 數組searchResultPanel是JPanel的

+0

好了,什麼問題呢? – SuperTron 2011-12-14 07:24:08

+0

執行後無法看到圖像 – 2011-12-14 07:31:27

回答

1

如果要同時顯示所有圖像,則使用GridLayout,但必須考慮網格佈局的行和列。

GridLayout gl = new gridLayout(2,macthedImages.length/2); 

或者如果你想一次顯示一個圖像,然後使用CardLayout。像這樣:

CardLayout cl = new CardLayout(); 
for(int i=0;i<macthedImages.length;i++){ 
     JLabel jLabel = new JLabel(new ImageIcon(macthedImages[i])); 
     cl.add(jLabel, "jLabel"+i); 
    } 

在第二個選項中,您可以通過觸發事件顯示任何圖像。它提供了許多methods

2

1),你必須設定適當的LayoutManager

2)對於許多在JLabel的形象將是GridLayout最好的選擇,在案例,你想看到所有圖像上一個JPanel

3)使用CardLayout,如果你想看到每個圖像separatelly

4)也許有需要任何重新創建

JLabel jLabel = new JLabel(new ImageIcon(macthedImages[i])); 

只設

jLabel[i].setIcon(macthedImages[i]); 

5)也許把的JPanel到JSCrollPane

6)如果你添加/刪除JCOmponents上運行時您必須致電

revalidate(); 
repaint()// sometimes required