Ciao a tutti, non capisco il motivo per cui venga lanciata un eccezione a puntantore null. Stavo scrivendo un semplice codice per imparare a usare il GridBagLayout. Lo posto di seguito:

import java.awt.Component;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

import javax.swing.JButton;
import javax.swing.JFrame;


public class Finestra extends JFrame{

private GridBagLayout layout;
private GridBagConstraints constraints;

private JButton[] bottoni;

public Finestra() {
super("GridBagLayout");

layout = new GridBagLayout();
setLayout(layout);
constraints = new GridBagConstraints();

bottoni = new JButton[4];

for(int i = 0;i<bottoni.length;i++) {
bottoni[i] = new JButton("Bottone " + i);
i++;
}



constraints.fill = GridBagConstraints.BOTH;




addComponent(bottoni[0],0,0,0,0);
addComponent(bottoni[1],0,1,0,0);
addComponent(bottoni[2],1,0,0,0);
addComponent(bottoni[3],1,1,0,0);

}

private void addComponent(Component component, int row, int col, int width, int height) {
constraints.gridx = row;
constraints.gridy = col;
constraints.gridwidth = width;
constraints.gridheight = height;
layout.setConstraints(component, constraints);
add(component);
}

}