gente do céu, nao sei onde é o erro disso…ja li tudo quanto é topico, tentei daqui e dali mas vou recorrer a ajuda de vcs
tenho um formulario que faz cadastro e atualização
e tenho tb, uma tabela
cadastro OK
atualização QUASE OK
eu faço uma pesquisa de todos os contatos, aparece na jTable e eu consigo atualizar qualquer cadastro
nas linhas 1 e 2 da tabela atualiza e tudo OK
porém, a partir da linha 3, ele atualiza e depois mostra este erro
java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
ou seja, atualizar ele atualiza, mas da este erro ai
e joga o erro la pra um lugar q nao entendo oq pode ser…nesta linha
txtRazaoSocial.setText(fornecedores.get(tabela.getSelectedRow()).getRazao_social());
agradeço!
java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
Isso te diz que vc está tentando acessar a posição 1 de um array que tem apenas uma posição. O problema é que a primeira posição é o ZERO.
então, até ai eu sei que ele esta tentando acessar a primeira posição
mas ele retorna o erro nesta linha ai q eu mostrei, ta ficando confuso isso
só a partir da 3 linha da tabela q da isso
private void jTTabelaLinhaSelecionada(JTable tabela)
{
if (jTTabela.getSelectedRow() != -1)
{
habilitaDados();
txtRazaoSocial.setText(fornecedores.get(tabela.getSelectedRow()).getRazao_social());
txtNomeFantasia.setText(fornecedores.get(tabela.getSelectedRow()).getNome_fantasia());
txtCnpj.setText(fornecedores.get(tabela.getSelectedRow()).getCnpj());
txtIE.setText(fornecedores.get(tabela.getSelectedRow()).getIe());
txtIM.setText(fornecedores.get(tabela.getSelectedRow()).getIm());
txtLogradouro.setText(fornecedores.get(tabela.getSelectedRow()).getLogradouro());
txtNumero.setText(fornecedores.get(tabela.getSelectedRow()).getNumero());
txtComplemento.setText(fornecedores.get(tabela.getSelectedRow()).getComplemento());
cbEstado.setSelectedItem(fornecedores.get(tabela.getSelectedRow()).getEstado());
txtCEP.setText(fornecedores.get(tabela.getSelectedRow()).getCep());
txtBairro.setText(fornecedores.get(tabela.getSelectedRow()).getBairro());
txtCidade.setText(fornecedores.get(tabela.getSelectedRow()).getCidade());
txtDDDCom.setText(String.valueOf(fornecedores.get(tabela.getSelectedRow()).getDdd_com()));
txtTelComercial.setText(fornecedores.get(tabela.getSelectedRow()).getTel_com());
txtDDDRes.setText(String.valueOf(fornecedores.get(tabela.getSelectedRow()).getDdd_res()));
txtTelResidencial.setText(fornecedores.get(tabela.getSelectedRow()).getTel_res());
txtDDDCel.setText(String.valueOf(fornecedores.get(tabela.getSelectedRow()).getDdd_cel()));
txtCelular.setText(fornecedores.get(tabela.getSelectedRow()).getCelular());
txtPagWeb.setText(fornecedores.get(tabela.getSelectedRow()).getPag_web());
txtEmail.setText(fornecedores.get(tabela.getSelectedRow()).getEmail());
txtObservacoes.setText(fornecedores.get(tabela.getSelectedRow()).getObservacoes());
}
else
{
return;
}
}
private void mostraPesquisa(List<CadFornecedor> fornecedores)
{
while (tmFornecedor.getRowCount()>0)
{
tmFornecedor.removeRow(0);
}
if (fornecedores.size() == 0)
{
JOptionPane.showMessageDialog(this, "Nenhum fornecedor cadastrado", "Erro", WIDTH);
}
else
{
String[] linha = new String [] {null, null, null};
for (int i = 0; i < fornecedores.size(); i++)
{
tmFornecedor.addRow(linha);
tmFornecedor.setValueAt(fornecedores.get(i).getRazao_social(), i, 0);
tmFornecedor.setValueAt(fornecedores.get(i).getNome_fantasia(), i, 1);
tmFornecedor.setValueAt(fornecedores.get(i).getCnpj(), i, 2);
}
}
}
Provavelmente seu problema está no modelo da tabela. Não use DefaultTableModel. Veja isso: http://www.guj.com.br/posts/list/15/199067.java#1001295
Hmm, bom saber! Mas agora acontece que todos meus formulários já estão com este tipo de implementação.
Se eu for alterar de todos agora, num vai dar tempo. Prefiro arrumar este erro, que só falta isso, do que trocar tudo e atrasar pra entregar o trabalho. Ai dps com mais tempo eu altero isso com certeza!
Alguma sugestão para o erro?
vejam, se eu coloco este código abaixo, funciona sem dar o erro.
Qual esta sendo a diferença do removeRow(0); para o setRowCount(0); ?
while (tmFornecedor.getRowCount()>0)
{
tmFornecedor.setRowCount(0); //removeRow(0);
}
removeRow(0); //Remove a linha com indice Zero
setRowCount(0); //seta a quantidades de linha para Zero
Chutei…