Erro ao iniciar form com jtable

olá pessoal estou com um projeto de clinica médica e até postei um erro aqui no forum que gracas a deus foi resolvido por Jailson. Só que agora to tentando resolver um com uma jtable, quando o form inicializa a exception diz o seguinte “ERRO AO PREENCHER ARRAYLIST RESULTSET NÃO ESTÁ POSICIONADO CORRETAMENTE,TALVEZ VOCÊ PRECISE CHAMAR NEXT” e tive lendo na api do java que esse erro retorna false quando nao tem uma linha na tabela ,ou seja nenhum cadastro.Tem como resolver isso o código refernte a jtable disponibilizo abaixo

CLASSE MODELO TABELA:

package Atributos;

import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;
public final class ModeloTabela extends AbstractTableModel{
    
    
    private ArrayList linhas = null;
    private String[] colunas = null;

public ModeloTabela(ArrayList lin,String[] col){
    setLinhas(lin);
    setColunas(col);
    
}

/**
 * @return the linhas
 */
public ArrayList getLinhas() {
    return linhas;
}

/**
 * @param linhas the linhas to set
 */
public void setLinhas(ArrayList linhas) {
    this.linhas = linhas;
}

/**
 * @return the colunas
 */
public String[] getColunas() {
    return colunas;
}

/**
 * @param colunas the colunas to set
 */
public void setColunas(String[] colunas) {
    this.colunas = colunas;
}

@Override
public int getColumnCount(){//conta o número de colunas
    
    return colunas.length;
}

@Override
public int getRowCount(){//conta o número de linhas
   
    return linhas.size();
}

@Override
public String getColumnName(int numCol){//pega o nome da coluna
    
    return colunas[numCol];//retorna quantas colunas existem
}

@Override
public Object getValueAt(int numLin,int numCol){//adiciona as linhas da tabela recebendo a qtd de linhas
    
    Object[] linha = (Object[])getLinhas().get(numLin);
    return linha[numCol];
}
}

METODO PREENCHER TABELA:

public void prencherTabela(String Sql){
       ArrayList dados = new ArrayList();
       String[] colunas = new String[]{"ID","Nome do médico","número do crm","Situação","Tipo de Inscrição","Especialidade","Área de atuação"};//colunas da tabela
       conect.conexao();
   
   
    try {
        conect.executarSql(Sql);
        conect.rs.first();//seta o primeiro resultado da pesquisa
        do{
            dados.add(new Object[]{conect.rs.getInt("cod_medico"),conect.rs.getString("nome_medico"),
            conect.rs.getString("numero_crm"),conect.rs.getString("situacao_medico"),
            conect.rs.getString("tipo_inscricao_medico"),conect.rs.getString("especialidade_medico"),
            conect.rs.getString("area_atuacao_medico")});
            
        }while(conect.rs.next());//faz um lupo enquanto houver dados
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, "Erroa ao preencher arrayList\n" + ex.getMessage());
    }
    
    ModeloTabela tabela = new ModeloTabela(dados, colunas);//passando como parâmetro a qtd linhas e qtd colunas
    jTablemedico.setModel(tabela);
    jTablemedico.getColumnModel().getColumn(0).setPreferredWidth(10);//coluna e sua largura e zero por causa do primeiro registro
    jTablemedico.getColumnModel().getColumn(0).setResizable(true);
    jTablemedico.getColumnModel().getColumn(1).setPreferredWidth(10);
    jTablemedico.getColumnModel().getColumn(1).setResizable(true);
    jTablemedico.getColumnModel().getColumn(2).setPreferredWidth(10);
    jTablemedico.getColumnModel().getColumn(2).setResizable(true);
    jTablemedico.getColumnModel().getColumn(3).setPreferredWidth(10);
    jTablemedico.getColumnModel().getColumn(3).setResizable(true);
    jTablemedico.getColumnModel().getColumn(4).setPreferredWidth(10);
    jTablemedico.getColumnModel().getColumn(4).setResizable(true);
    jTablemedico.getColumnModel().getColumn(5).setPreferredWidth(10);
    jTablemedico.getColumnModel().getColumn(5).setResizable(true);
    jTablemedico.getColumnModel().getColumn(6).setPreferredWidth(10);
    jTablemedico.getColumnModel().getColumn(6).setResizable(true);
    jTablemedico.getTableHeader().setReorderingAllowed(false);//não poderá reordenar os cabeçalhos da tabela
    jTablemedico.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
    jTablemedico.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    
   
       conect.desconecta();
   }

então acho que o erro acontece dentro do loop while pois tem um next lá. Só que quando inicio uma tabela sem registros ele chama a exception, qual parâmetro uso para resolver isso?

1 curtida

consegui a resposta em outro forum e só trocar o do while por while