2011-12-14 60 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