[RESOLVIDO]Problema TableModel

Após horas pesquisando sobre TableModel e tentando fazer, não obtive muito sucesso…

O problema é que eu não sei se o que eu já fiz está certo e como colocar os dados na jTable…

Segue as classes:

public class horario {
    
    private String nome;
    private String data;
    private String horario;
    private String procedimento;
    
    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getData() {
        return data;
    }

    public void setData(String data) {
        this.data = data;
    }
    
    public String getHorario() {
        return horario;
    }

    public void setHorario(String horario) {
        this.horario = horario;
    }
    
    public String getProcedimento() {
        return procedimento;
    }

    public void setProcedimento(String Procedimento) {
        this.procedimento = procedimento;
    }
}

TableModel:

[code]
public class Model extends AbstractTableModel {

private static final long serialVersionUID = 1L;  

/* Lista de Cliente que representam as linhas. */  
private List<horario> linhas;  

/* Array de Strings com o nome das colunas. */  
private String[] colunas = new String[]{  
    "Nome","Data","Horário","Procedimento"};  



/* Cria um ClienteTableModel vazio. */  
public Model() {  
    linhas = new ArrayList<horario>();  
}  

/* Cria um ClienteTableModel carregado com 
 * a lista de Cliente especificada. */  
public Model(List<horario> listaDeHorario) {  
    linhas = new ArrayList<horario>(listaDeHorario);  
}  


/* Retorna a quantidade de colunas. */  
@Override  
public int getColumnCount() {  
    // Está retornando o tamanho do array "colunas".  
    return colunas.length;  
}  

/* Retorna a quantidade de linhas. */  
@Override  
public int getRowCount() {  
    // Retorna o tamanho da lista de Cliente.  
    return linhas.size();  
}  


@Override  
public String getColumnName(int columnIndex) {  
    // Retorna o conteúdo do Array que possui o nome das colunas  
    return colunas[columnIndex];  
}  

;  

@Override  
public Class<?> getColumnClass(int columnIndex) {  
    return String.class;  
}  

;  


@Override  
public Object getValueAt(int rowIndex, int columnIndex) {  
        horario horario = linhas.get(rowIndex);  

    // Retorna o campo referente a coluna especificada.  
    // Aqui é feito um switch para verificar qual é a coluna  
    // e retornar o campo adequado. As colunas sãoas mesmas  
    // que foram especificadas no array "colunas".  
    switch (columnIndex) {  

        // Seguindo o exemplo: "Tipo","Data de Cadastro", "Nome", "Idade"};  
        case 0:  
            return horario.getNome();  
        case 1:  
            return horario.getData();  
        case 2:  
            return horario.getHorario();
        case 3:
            return horario.getProcedimento();
        default:  
            // Isto não deveria acontecer...  
            throw new IndexOutOfBoundsException("columnIndex out of bounds");  
    }  
}  

@Override
//modifica na linha e coluna especificada
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
horario horario = linhas.get(rowIndex); // Carrega o item da linha que deve ser modificado

 switch (columnIndex) { // Seta o valor do campo respectivo  
     case 0:  
         horario.setNome(aValue.toString());  
     case 1:  
         horario.setData(aValue.toString());  
     case 2:  
         horario.setHorario(aValue.toString());  
     case 3:  
         horario.setProcedimento(aValue.toString());

     default:  
         // Isto não deveria acontecer...               
 }  
 fireTableCellUpdated(rowIndex, columnIndex);  
 }  

//modifica na linha especificada  
public void setValueAt(horario aValue, int rowIndex) {  
    horario horario = linhas.get(rowIndex); // Carrega o item da linha que deve ser modificado  

    horario.setNome(aValue.getNome());  
    horario.setData(aValue.getData());  
    horario.setHorario(aValue.getHorario());  
    horario.setProcedimento(aValue.getProcedimento());  

    fireTableCellUpdated(rowIndex, 0);  
    fireTableCellUpdated(rowIndex, 1);  
    fireTableCellUpdated(rowIndex, 2);  
    fireTableCellUpdated(rowIndex, 3); 

}  
;  


;  


@Override  
public boolean isCellEditable(int rowIndex, int columnIndex) {  
    return false;  
}  


public horario getHorario(int indiceLinha) {  
    return linhas.get(indiceLinha);  
}  



/* Adiciona um registro. */  
public void addHorario(horario m) {  
    // Adiciona o registro.  
    linhas.add(m);  

     
    int ultimoIndice = getRowCount() - 1;  

    fireTableRowsInserted(ultimoIndice, ultimoIndice);  
}  

/* Remove a linha especificada. */  
public void removeHorario(int indiceLinha) {  
    linhas.remove(indiceLinha);  

    fireTableRowsDeleted(indiceLinha, indiceLinha);  
}  

/* Adiciona uma lista de Cliente ao final dos registros. */  
public void addListaDeHorario(List<horario> horario) {  
    // Pega o tamanho antigo da tabela.  
    int tamanhoAntigo = getRowCount();  

    // Adiciona os registros.  
    linhas.addAll(horario);  

    fireTableRowsInserted(tamanhoAntigo, getRowCount() - 1);  
}  

/* Remove todos os registros. */  
public void limpar() {  
    linhas.clear();  


    fireTableDataChanged();  
}  

/* Verifica se este table model esta vazio. */  
public boolean isEmpty() {  
    return linhas.isEmpty();  
}  }[/code]

A partir daqui que me perdi…:

public void pesquisa(String qry) throws SQLException{
        conexao();
        List<horario> h = new ArrayList<>();
      boolean status = conecta.conecta();
      
        boolean cons = conecta.consulta(qry);       
        ResultSet dados = conecta.getConsulta();
        

        while(dados.next()){
       horario hora = new horario();
        hora.setNome(dados.getString("nome_horario"));
         hora.setData(dados.getString("data_horario"));
          hora.setHorario(dados.getString("horario_horario"));
           hora.setProcedimento(dados.getString("procedimento_horario"));
           h.add(hora);
           
          
           
       
        }
    }

uso assim para poder chamar em algum evento, ex: pesquisa(“select * from tbhorario”);

Classe que contém a tabela:

public class testeTCC extends javax.swing.JFrame {
     
    
    
    Model modelo;   
    Conexao conecta = new Conexao();
    CarregaTodos carrega = new CarregaTodos();
   
    //modelo criado
    private void setModelo(){
        modelo = new Model();  
       jt_teste.setModel(modelo); 
    }
    
    
    
    public testeTCC() throws SQLException {
        initComponents();
        conecta.setDRIVE("org.gjt.mm.mysql.Driver");
        conecta.setURL("jdbc:mysql://");
        conecta.setHOST("localhost");
        conecta.setBANCO("odonto");
        conecta.setUSUARIO("root");
        conecta.setSENHA("02496846088");
        setModelo();
      
        carrega.pesquisa("select * from tbhorario;");
    }

Não sei se pode dar Double Post, mas já que ninguém respondeu e consegui resolver parcialmente a dúvida então vai a solução:

Parte da classe DAO(creio eu, sou leigo ainda):

public List<horario>getAllHorario(String qry) throws SQLException{
        conexao();
        List<horario> h = new ArrayList<horario>();
        boolean status = conecta.conecta();
           
        boolean cons = conecta.consulta(qry);       
        ResultSet dados = conecta.getConsulta();
    
        while(dados.next()){
          horario hora = new horario();
          hora.setNome(dados.getString("nome_horario"));
         hora.setData(dados.getString("data_horario"));
          hora.setHorario(dados.getString("horario_horario"));
           hora.setProcedimento(dados.getString("procedimento_horario"));
          h.add(hora);
        }
        return h;   
    } 

Parte da classe que contém a tabela:

 //modelo criado
    private void setModelo() throws SQLException{
        List<horario> h = new CarregaTodos().getAllHorario("select * from tbhorario");
        Model modelo = new Model(h);
        jt_teste.setModel(modelo);      
    }

O novo problema é que a ultima coluna não carrega… a coluna procedimento… as outras vem certinho…:stuck_out_tongue:

@Edit: era pq na classe que tinha os set’s e get’s o procedimento era com letra maiúscula… desculpa ae…