2013-08-14 5 views
0

У меня есть четыре панели, и я хочу добавить изображения на эти панели.
Когда я нажимаю кнопку «Пуск», каждой панели необходимо изменить 4 изображения.
Я делаю тестовую программу для покера.
Изображения помещаются в папку Карты (корень) и называются
1.png, 2.png, 3.png .... 52.png.Как я могу вставить ImageIcon в панели?

Я начинаю программировать на Java, и мой вопрос может звучать глупо. Я встречая NullPointerException

Код:

import javax.swing.ImageIcon; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 

public class Display extends Thread{ 
    private JPanel [] paneli; 
    private JLabel slika; 

    public JPanel[] getPaneli() { 
     return paneli; 
    } 

    public void setPaneli(JPanel[] paneli) { 
     this.paneli = paneli; 
    } 

    public JLabel getSlika() { 
     return slika; 
    } 

    public void setSlika(JLabel slika) { 
     this.slika = slika; 
    } 

    public void run(){ 
     JLabel [] labele = new JLabel[4]; 
     for(int i =0; i<paneli.length; i++){ 
      for(int j=0; j<labele.length; j++){ 
       slika.setIcon(new ImageIcon("card\\" + (i+1) + ".png")); 
       labele[j].add(slika); 
       paneli[i].add(labele[j]); 
      } 
     } 
    } 
} 
+1

Вы можете разместить полную трассировку стека, поэтому мы знаем, что линия терпит неудачу? Например, 'paneli' когда-либо инициализируется с помощью' setPaneli'? –

+0

Для примера [http://stackoverflow.com/a/11372350/1057230) дополнительную информацию можно найти на странице [info] (http://stackoverflow.com/tags/embedded-resource/info) 'embedded-resource' :-) –

+1

сначала панель не инициализируется. Это должно означать, что при вызове 'paneli.length' в вашем коде генерируется исключение nullpointer. –

ответ

1

Пытаться установить значок изображения следующим образом:

slika.setIcon(new ImageIcon(getClass().getResource("/card/" + (i+1) + ".png")); 
+0

частных JButton getBtnStart() { \t \t если (btnStart == NULL) { \t \t \t btnStart = новый JButton ("Start"); \t \t \t btnStart.addActionListener (новый ActionListener() { \t \t \t \t общественного недействительными actionPerformed (ActionEvent arg0) { \t \t \t \t \t JPanel [] р = {панели, Panel_1, panel_2, panel_3}; \t \t \t \t \t д = новый дисплей(); \t \t \t \t \t d.setPaneli (р); \t \t \t \t \t d.start(); \t \t \t \t} \t \t \t}); \t \t \t btnStart.setBounds (22, 246, 97, 65); \t \t \t \t \t возвращение btnStart; \t} – user2683095

Смежные вопросы