Estou com um problema com o DefaultTableModel. Criei uma tabela da seguinte forma:
[code]String[] colunas = new String []{“Estado”,“Cidade”};
String[][] dados = new String [][] {
{“SP”,“Sao Paulo”},
{“RJ”,“Rio de Janeiro”},
{“RN”,“Rio Grande do Norte”},
{“PR”,“Parana”}
};
DefaultTableModel dtm = new DefaultTableModel(dados, colunas) {
public boolean isCellEditable(int row, int col) {
return false;
}
};
JTable jTable1 = new JTable(dtm); [/code]
Até aí tudo bem, porém quando vou me referenciar a valores da jTable1, assim por exemplo:
Nesse momento é disparada uma excessão: NullPointerException.
Alguém sabe se quando utilizo um modelo, preciso me referenciar diferentemente a JTable ou ao modelo???
java.lang.NullPointerException
at PreSala.Cadastrar(PreSala.java:169)
at PreSala.access$300(PreSala.java:19)
at PreSala$5.actionPerformed(PreSala.java:135)
Verifique meu código:
linha 169:
Nessa linha está o erro.
linha 19:
Nessa linha é feita a declaração da classe.
linha 135:
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cadastrar(evt);
}
});
Nessa linha quando se clica no botão, está sendo chamado o evento que contém o JOptionPane para mostrar o valor capturado da linha da tabela selecionada na coluna 0.
Não sei o que está acontecendo…
Por favor, me ajudem…
O problem só pode ser que jTable1 está null(pelo menos não consegui pensar em outra causa).
JOptionPane.showMessageDialog(null, null);
Não causa exceção nenhuma. E ainda se causasse, o primeiro linha de stack trace seria tipo de…
at javax.swing.JOptionPane(...)
at PreSala.Cadastrar(PreSala.java:169)
at PreSala.access$300(PreSala.java:19)
at PreSala$5.actionPerformed(PreSala.java:135)
Então só resta o jTable1 estar null. Verifica que a referencia mesmo está sendo colocado nele.
Vc quis dizer que o jTable1 está null, ou seja, não tem nehum valor? Isso não acontece, estou clicando e selecionando uma linha com valores em todas as colunas.
Tô querendo dizer é que o variavel jTable1 não está referindo ao objeto nenhum. As células da tabela podem ter valores, sim, mas o jTable1 não está referindo à sua tabela por qualquer razão.
Tente inserir
System.out.println("valor do jTable1: " + jTable1);
na linha 169, antes de chamada do JOptionPane pra verificar isso.
Pra evitar que esse erro aconteca novamente, de uma olhada nas configuracoes do compilador do Eclipse (presumindo que vc esta usando Eclipse…), e ligue a warning para redefinicao de variaveis em escopo local