2012-01-22 71 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()