Tworzenie tablicy buttonów w pętli

0

Cześć zrobiłem coś takiego tylko wywala błąd i nic nie tworzy :/ Chce stworzyć 10x10 buttonów.

 package saper;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

/**
 *
 * @author Tomek
 */
public class GameWindow extends JFrame implements ActionListener{
    
    private JButton StartGameButton;
    private JButton Results;
    private JMenuBar Menu;
    private JMenu menuFile,menuHelp;
    private JMenuItem iNewGame, iInformations, iShowResult, iClose; 
    private JButton[][] buttonsField;
    private JPanel GamePanel;
    private Container grid = new Container();
    
    
    public GameWindow() {
        setTitle("Saper");
        setBounds(300,300,500,500);
        setLayout(null);
        setResizable(false);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);
        grid.setLayout(new GridLayout(10,10));
        
        
        Menu = new JMenuBar();
        
        menuFile = new JMenu("Plik");
            iNewGame = new JMenuItem("Nowa gra");
            iShowResult = new JMenuItem("Wyniki");
            iClose = new JMenuItem("Koniec");
            menuFile.add(iNewGame);
            menuFile.add(iShowResult);
            menuFile.add(iClose);
            
        menuHelp = new JMenu("Pomoc");
            iInformations = new JMenuItem("O Programie");
            menuHelp.add(iInformations);
       
        
        setJMenuBar(Menu);
        Menu.add(menuFile);
        Menu.add(menuHelp);
        
        
        StartGameButton = new Fields("Nowa Gra",200,150,100,50);
        Results = new Fields("Wyniki",200,220,100,50);
        add(Menu);
        add(StartGameButton);
        StartGameButton.addActionListener(this);
        add(Results);
        
        
            }
    
    public void GameWindowBulid() {
            for (int k = 0;k< buttonsField.length;k++){
                for(int w = 0;w< buttonsField.length;w++){
                    buttonsField[k][w] = new JButton();
                    buttonsField[k][w].addActionListener(this);
                    grid.add(buttonsField[k][w]);
                }
            }
            
                }
        

    @Override
    public void actionPerformed(ActionEvent e) {
        
        Object source = e.getSource();
        
            if (source == StartGameButton) {
                GameWindowBulid();
                Results.setVisible(false);
            }
    }
    
    
}

0

buttonsField jest nullem, przecież NIGDZIE tej tablicy nie utworzyłeś.

0

W tej metodzie chcę tworzyć pole gry, dalej nie rysuje buttonów :/

 public void GameWindowBulid() {
        
            buttonsField = new JButton[10][10];
            for (int k = 0;k< buttonsField.length;k++){
                for(int w = 0;w< buttonsField.length;w++){
                    buttonsField[k][w] = new JButton("x");
                    buttonsField[k][w].addActionListener(this);
                    add(buttonsField[k][w]);
                }
            }
            
                }
0

nie dodajesz grid nigdzie.

dodaj np. w konstruktorze

 grid.setBounds(0,0,300,300);
        add(grid);

1 użytkowników online, w tym zalogowanych: 0, gości: 1