getvalueAT() dá erro ao passar os dados

1 resposta
Dani_Gomes

Estou tentando abrir a tela de cadastro e setar os dados que estão no jtable quando dou dois cliques, porém não está retornando os dados.
Segue o código do meu getvalueat:

public Object getValueAt(int linha, int coluna) {
        switch(coluna){
            case 0:
                return clientes.get(linha).getCodigo().toString();
            case 1:
                return clientes.get(linha).getNome().toString();
            case 2:
                return clientes.get(linha).getDataNascimento().toString();
            case 3:
                return clientes.get(linha).getReturnfoto().toString();
            default:
                return null;
        }
    }

e a minha chamada no jtable:

private void tblDadosMouseClicked(java.awt.event.MouseEvent evt) {                                      
        if (evt.getClickCount()==2) {
            try {
                cadastro_Aluno cadastroAluno=new cadastro_Aluno();
                cadastroAluno.campoJTable(modelo.getValueAt(tblDados.getSelectedRow(), 0).toString(),tblDados.getValueAt(tblDados.getSelectedRow(), 1).toString(),tblDados.getValueAt(tblDados.getSelectedRow(),2).toString());
                cadastroAluno.setVisible(true);
            } catch (Exception ex) {
                Logger.getLogger(SubJanela_ConsultaAlunos.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }

E na tela de cadastro, que eu quero setar estes dados:

public void campoJTable(String codigo,String nome,String dataNascimento) {
        txfMatricula.setText(codigo);
        txfNome.setText(nome);
        txfDataNascimento.setText(dataNascimento);
    }

Já tentei de tudo que foi jeito, porém só dá o erro:

09/12/2011 10:21:40 swing.SubJanela_ConsultaAlunos tblDadosMouseClicked
GRAVE: null
java.lang.ArrayIndexOutOfBoundsException: -1
	at java.util.ArrayList.get(ArrayList.java:324)
	at Util.tableModelAlunos.getValueAt(tableModelAlunos.java:59)
	at swing.SubJanela_ConsultaAlunos.tblDadosMouseClicked(SubJanela_ConsultaAlunos.java:198)
	at swing.SubJanela_ConsultaAlunos.access$200(SubJanela_ConsultaAlunos.java:28)
	at swing.SubJanela_ConsultaAlunos$3.mouseClicked(SubJanela_ConsultaAlunos.java:125)

Coloquei somente parte do erro.

1 Resposta

Dani_Gomes

Consegui resolver, utilizando um post aqui mesmo do guj.
http://www.guj.com.br/java/211010-capturar-linha-selecionada-de-uma-jtable/4
Caso alguém necessite, este post dá todas as dicas necessárias para criar o seu tablemodel.

Criado 9 de dezembro de 2011
Ultima resposta 9 de dez. de 2011
Respostas 1
Participantes 1