Me ajudem a encontrar o erro

Observem este trecho de programa

[code] public class TabuleiroX extends JFrame{
private JButton tab[][] = new JButton[17][17];
private int linha;
private int coluna;

class TrataTabuleiro implements ActionListener{
private int i, j;
public TrataTabuleiro(int x1, int x2) {
i = x1;
j = x2;
}
public void actionPerformed(ActionEvent e){
linha = i;
coluna = j;
}
}

void
pega_pos()
{
        for(int i=1;i<16;i++){
        	for(int j=1;j<16;j++){
                tab[i][j].addActionListener(new TrataTabuleiro(i, j));
	}
        }
}

void
clica_tabuleiro(){
pega_pos();
JOptionPane.showMessageDialog(null,"Linha: “+linha+”\nColuna: "+coluna,“Dados Coletados”,JOptionPane.INFORMATION_MESSAGE);
}
}

[/code]

Porque o trecho acima nao funciona? Problema: o metodo cria_tabuleiro não deixa o usuario clicar no tabuleiro, melhor, dizendo, ele mostra a mensagem Linha =0 e Coluna =0 e depois nem funciona mais… valeu pela ajuda
flw

você esta tentando adicionar um Listener

tab[i][j].addActionListener(new TrataTabuleiro(i, j)); 

em uma referência que referencia null. Quando você cria um array qualquer bi ou uni direcional ele não instância o objeto. Ele apenas guarda as referências nesse array. para você ligar uma referência desse array a um objeto, basta usar o operador new!

tab[i][j] = new JButton();
tab[i][j].addActionListener(new TrataTabuleiro(i, j));