2013-06-02 4 views
1

Я пытаюсь сделать игру с линкором, и мне не удалось добавить JButton s в JPanel при использовании цикла. Я могу добавить его один за другим, но не в цикл for.Добавление JButton в JPanel с использованием цикла (for)?

У меня нет ошибок, только при компиляции;

"Exception in thread "main" java.lang.NullPointerException 
at Allo.<init>(Allo.java:38) 
at Allo.main(Allo.java:55)" 

Вот код:

import javax.swing.JFrame; 
import java.awt.GridLayout; 
import javax.swing.JPanel; 
import javax.swing.SpringLayout; 
import java.awt.Color; 
import javax.swing.JButton; 

public class Allo {  

    JFrame fenetre = new JFrame(); 
    static JButton[][] bouton; 

    public Allo(int width, int height) {  
    fenetre.setSize(800, 500); 
    fenetre.setResizable(false); 
    SpringLayout springLayout = new SpringLayout(); 
    fenetre.getContentPane().setLayout(springLayout);  
    JPanel panel = new JPanel(); 
    panel.setBackground(Color.DARK_GRAY);  
    fenetre.getContentPane().add(panel); 
    SpringLayout sl_panel = new SpringLayout(); 
    panel.setLayout(sl_panel); 
    for (int r = 0; r < 16; r++) 
    { 
     for (int c = 0; c < 8; c++) 
     {  
      bouton[r][c] = new JButton("("+r+","+c+")"); 
      panel.add(bouton[r][c]);  
      //fenetre.getContentPane().add(bouton[r][c]); 
     } 
    } 
    fenetre.setVisible(true); 
    }  

    public static void main(String[] args) { 
    // TODO Auto-generated method stub 
     new Allo(16,8); 
    } 
} 

ответ

2

Вы не инициализирован свой массив кнопок, так что следующая строка бросает исключение:

bouton[r][c] = new JButton("("+r+","+c+")"); 

Ваш код испытывает недостаток в следующую строку:

bouton = new JButton[16][8]; 
+0

Я не могу поверить, невероятно доброта, ваше величество +1 – mKorbel

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