2012-01-22 54 views
-1

我想显示6个不同的图像,每个图像都在aJPanel上。我尝试将图像添加到JLabel,但它不起作用。这里是我的代码:JPanel上的图像

public DocumentPanel2() { 

    initComponents(); 

    List<String> imagenes = new ArrayList<String>(); 
    imagenes.add("/imagenes/fondoPanel.jpg"); 
    imagenes.add("/imagenes/button.jpg"); 
    imagenes.add("/imagenes/primera.JPG"); 
    imagenes.add("/imagenes/segunda.JPG"); 
    imagenes.add("/imagenes/tercera.JPG"); 
    imagenes.add("/imagenes/cuarta.JPG"); 

    List<JPanel> paneles = new ArrayList<JPanel>(); 
    paneles.add(jPanel1); 
    paneles.add(jPanel2); 
    paneles.add(jPanel3); 
    paneles.add(jPanel4); 
    paneles.add(jPanel5); 
    paneles.add(jPanel6); 
    for(int i = 0; i < imagenes.size(); i++) 
    { 
     ImageIcon image = new ImageIcon(new ImageIcon(getClass().getResource(imagenes.get(i))).getImage()); 
     JLabel label = new JLabel(); 
     label.setIcon(image); 
     paneles.get(i).add(label); 
    } 
    } 
} 

这段代码是在公共类DocumentPanel2的GUI上扩展javax.swing.JPanel。我期望有一个内有6个面板的面板,每个面板都显示一个图像,但我只用6个面板显示任何内容。

感谢您的帮助!

+1

_什么不工作?你期望什么,你会得到什么?请更具体一些。 – Thomas

+0

阿门。 “它不起作用”没有告诉我们什么。 –

+0

您在哪里添加这些JLabel将JPanels添加到GUI上的任何组件?为什么要使用JPanels?为什么不将JLabel添加到GUI上的容器? –

回答

2

您并未添加将JLabel保存到GUI上可视化的任何容器的JPanel。更好的是,甚至不使用中间JPanel,但只需将带有图像的JLabel添加到GUI所容纳的容器中即可。您需要确保容器(通常是JPanel)使用布局管理器来良好地布置和显示JLabel,比如GridLayout(3,0)。如果在显示GUI后添加组件,请不要忘记在添加JLabel后在容器JPanel上调用revalidate()repaint()