Quantcast
Channel: GUJ - Tópicos com a tag java
Viewing all articles
Browse latest Browse all 17410

Como atualizar jTable sem duplicar os dados? (com TableModel)

$
0
0

@Matheus_Costa escreveu:

Eae pessoal, eu consigo exibir os dados do BAnco de Dados na tabela perfeitamente, porém eu quero que sempre que faça uma inserção, alteração ou exclusão de uma linha no BD a tabela ja atualize automaticamente ou então que tenha um botão Atualizar Tabela com um método que atualize os dados da tabela. Já pesquisei aqui no guj e não achei nada que me ajudasse.

Segue a Classe do TableModel:

public class TableEquipamentos extends AbstractTableModel{
ConexaoBD conex = new ConexaoBD();
CadastroEquipamentos cadequip = new CadastroEquipamentos();
private List<BeansEquipamento> dados = new ArrayList<>(); //Array dos dados
private String[] colunas = {"ID","Nome","Tipo", "Cod. Interno", // Nome das colunas
"Horas de uso", "Num. de série", "Nescessidade p/ troca de filtro", "Tempo p/ troca de filtro",
 "Ultima troca de filtro","Centro de custo", "Sublocado"};

@Override
public String getColumnName(int column) {
    return colunas[column]; 
}

@Override
public int getRowCount() {
    
    return dados.size();
}

@Override
public int getColumnCount() {
    return colunas.length;
}

public List<BeansEquipamento> read(){ // método Read (coloca os dados do BD na tabela)

    conex.conexao();
    PreparedStatement stmt = null;
    ResultSet rs = null;
   try {
       stmt = conex.con.prepareStatement("Select * From equipamento");
       rs = stmt.executeQuery();
       while (rs.next()){
          BeansEquipamento beans = new BeansEquipamento();
           beans.setCodequip(rs.getInt("codequip"));
           beans.setNome(rs.getString("nome"));
           beans.setTipoequip(rs.getString("tipoequipamento"));
           beans.setCodinterno(rs.getString("codinterno"));
           beans.setHorasdeuso(rs.getInt("horasuso"));
           beans.setNumserie(rs.getString("numeroserie"));
           beans.setNecestrocafiltro(rs.getString("necessitrocafiltro"));
           beans.setTempotrocafiltro(rs.getString("tempotrocafiltro"));
           beans.setUltimtrocafiltro(rs.getString("ultimatrocafiltro"));
           beans.setCentrocusto(rs.getString("centrocusto"));
           beans.setSublocado(rs.getString("sublocado"));
           dados.add(beans);
           this.fireTableDataChanged();
       }
        //JOptionPane.showMessageDialog(null, "Tabela preenchida com sucesso");
   } catch (SQLException ex) {
      JOptionPane.showMessageDialog(null, "Erro ao preencher Tabela.\n Erro:"+ex);
   }
       conex.desconetar();
   return null;}

@Override
public Object getValueAt(int linha, int coluna) {
    
    switch (coluna){
        case 0:
            return dados.get(linha).getCodequip();
        case 1:
            return dados.get(linha).getNome();
        case 2:
            return dados.get(linha).getTipoequip();
        case 3:
            return dados.get(linha).getCodinterno();
        case 4:
            return dados.get(linha).getHorasdeuso(); 
        case 5:
            return dados.get(linha).getNumserie();
        case 6:
            return dados.get(linha).getNecestrocafiltro();
        case 7:
            return dados.get(linha).getTempotrocafiltro();  
        case 8:
            return dados.get(linha).getUltimtrocafiltro();
        case 9:
            return dados.get(linha).getCentrocusto();
        case 10:
            return dados.get(linha).getSublocado();     
    }
return null;
}
  
public void addRow(BeansEquipamento e){
    this.fireTableDataChanged();
}

Segue a Classe do formulario:

  public class CadastroEquipamentos extends javax.swing.JFrame {
  TableEquipamentos tableeq = new TableEquipamentos(); 
  BeansEquipamento beanseq = new BeansEquipamento(); 
  DaoEquipamento daoeq = new DaoEquipamento();
  ConexaoBD conex = new ConexaoBD();
  int flag = 0;
   
 public CadastroEquipamentos() {
        initComponents();
        TabelaEquipamentos.setModel(tableeq); //Setar modelo da tabela
        tableeq.read(); //Preencher tabela
        }
// Daqui pra baixo é o resto do código Com os botões Salvar, editar, excluir, pesquisar etc...
       
        @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {
    }// </editor-fold>                        

//Botão Salvar
    private void btnSalvarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        if(flag==1){
        beanseq.setNome(txtNome.getText());
        beanseq.setCodinterno(txtCodInterno.getText());
        beanseq.setNumserie(txtNumSerie.getText());
        beanseq.setTipoequip((String)slctTipoEquip.getSelectedItem());
        beanseq.setCentrocusto(txtCentroCusto.getText());
        beanseq.setSublocado(txtSublocado.getText());
        beanseq.setNecestrocafiltro(txtNeceTrocaFiltro.getText());
        beanseq.setTempotrocafiltro(txtTempTrocaFiltro.getText());
        beanseq.setUltimtrocafiltro(txtUltimTrocaFiltro.getText());
        beanseq.setHorasdeuso(Integer.parseInt(txtHorasdeUso.getText()));
        daoeq.Salvar(beanseq);
        tableeq.read();
        //Limpar Campos
        txtNome.setText("");
        txtCentroCusto.setText("");
        txtCodInterno.setText("");
        txtHorasdeUso.setText("");
        txtNeceTrocaFiltro.setText("");
        txtNumSerie.setText("");
        txtSublocado.setText("");
        txtTempTrocaFiltro.setText("");
        txtUltimTrocaFiltro.setText("");
        slctTipoEquip.setSelectedIndex(0);
        //Bloquear Campos
        txtNome.setEnabled(!true);
        txtNumSerie.setEnabled(!true);
        slctTipoEquip.setEnabled(!true);
        txtCentroCusto.setEnabled(!true);
        txtCodInterno.setEnabled(!true);
        txtSublocado.setEnabled(!true);
        txtNeceTrocaFiltro.setEnabled(!true);
        txtTempTrocaFiltro.setEnabled(!true);
        txtUltimTrocaFiltro.setEnabled(!true);
        txtHorasdeUso.setEnabled(!true);
        }else{
        beanseq.setNome(txtNome.getText());
        beanseq.setCodinterno(txtCodInterno.getText());
        beanseq.setNumserie(txtNumSerie.getText());
        beanseq.setTipoequip((String)slctTipoEquip.getSelectedItem());
        beanseq.setCentrocusto(txtCentroCusto.getText());
        beanseq.setSublocado(txtSublocado.getText());
        beanseq.setNecestrocafiltro(txtNeceTrocaFiltro.getText());
        beanseq.setTempotrocafiltro(txtTempTrocaFiltro.getText());
        beanseq.setUltimtrocafiltro(txtUltimTrocaFiltro.getText());
        beanseq.setHorasdeuso(Integer.parseInt(txtHorasdeUso.getText()));
        daoeq.Editar(beanseq);
        //Limpar Campos
        txtNome.setText("");
        txtCentroCusto.setText("");
        txtCodInterno.setText("");
        txtHorasdeUso.setText("");
        txtNeceTrocaFiltro.setText("");
        txtNumSerie.setText("");
        txtSublocado.setText("");
        txtTempTrocaFiltro.setText("");
        txtUltimTrocaFiltro.setText("");
        slctTipoEquip.setSelectedIndex(0);
        //Bloquear Campos
        txtNome.setEnabled(!true);
        txtNumSerie.setEnabled(!true);
        slctTipoEquip.setEnabled(!true);
        txtCentroCusto.setEnabled(!true);
        txtSublocado.setEnabled(!true);
        txtCodInterno.setEnabled(!true);
        txtNeceTrocaFiltro.setEnabled(!true);
        txtTempTrocaFiltro.setEnabled(!true);
        txtUltimTrocaFiltro.setEnabled(!true);
        txtHorasdeUso.setEnabled(!true);
        }
    }                                         

// Botão Novo
    private void bntNovoActionPerformed(java.awt.event.ActionEvent evt) {                                        
       flag = 1; 
        txtNome.setEnabled(true);
        txtNumSerie.setEnabled(true);
        txtCodInterno.setEnabled(true);
        slctTipoEquip.setEnabled(true);
        txtCentroCusto.setEnabled(true);
        txtSublocado.setEnabled(true);
        txtNeceTrocaFiltro.setEnabled(true);
        txtTempTrocaFiltro.setEnabled(true);
        txtUltimTrocaFiltro.setEnabled(true);
        txtHorasdeUso.setEnabled(true);
        //Limpar Campos
        txtNome.setText("");
        txtCentroCusto.setText("");
        txtCodInterno.setText("");
        txtHorasdeUso.setText("");
        txtNeceTrocaFiltro.setText("");
        txtNumSerie.setText("");
        txtSublocado.setText("");
        txtTempTrocaFiltro.setText("");
        txtUltimTrocaFiltro.setText("");
        slctTipoEquip.setSelectedIndex(0);
    }                                       

// Botão Excluir
    private void bntExcluirActionPerformed(java.awt.event.ActionEvent evt) {                                           
     int resposta;
        resposta = JOptionPane.showConfirmDialog(rootPane,"Realmente dejesa excluir OS CAMPOS?");
        if(resposta ==JOptionPane.YES_OPTION){
        beanseq.setCodequip(Integer.parseInt(txtIDequip.getText()));
        daoeq.Excluir(beanseq);
        //Limpar Campos
        txtNome.setText("");
        txtCentroCusto.setText("");
        txtCodInterno.setText("");
        txtHorasdeUso.setText("");
        txtNeceTrocaFiltro.setText("");
        txtNumSerie.setText("");
        txtSublocado.setText("");
        txtTempTrocaFiltro.setText("");
        txtUltimTrocaFiltro.setText("");
        slctTipoEquip.setSelectedIndex(0);
        }
    }                                          

// Botão Editar
    private void btnEditarActionPerformed(java.awt.event.ActionEvent evt) {                                          
      flag = 2;  
        txtNome.setEnabled(true);
        txtNumSerie.setEnabled(true);
        txtCodInterno.setEnabled(true);
        slctTipoEquip.setEnabled(true);
        txtCentroCusto.setEnabled(true);
        txtSublocado.setEnabled(true);
        txtNeceTrocaFiltro.setEnabled(true);
        txtTempTrocaFiltro.setEnabled(true);
        txtUltimTrocaFiltro.setEnabled(true);
        txtHorasdeUso.setEnabled(true);
    }                                         
// Botão Pesquisar
    private void btnPesquisarActionPerformed(java.awt.event.ActionEvent evt) {                                             
        beanseq.setPesquisa(txtPesquisa.getText());
        BeansEquipamento model = daoeq.buscaEquipamentos(beanseq);
        txtIDequip.setText(String.valueOf(model.getCodequip()));
        txtNome.setText(model.getNome());
        txtNumSerie.setText(model.getNumserie());
        txtCentroCusto.setText(model.getCentrocusto());
        txtCodInterno.setText(model.getCodinterno());
        txtHorasdeUso.setText(String.valueOf(model.getHorasdeuso()));
        txtNeceTrocaFiltro.setText(model.getNecestrocafiltro());
        txtSublocado.setText(model.getSublocado());
        txtTempTrocaFiltro.setText(model.getTempotrocafiltro());
        txtUltimTrocaFiltro.setText(model.getUltimtrocafiltro());
        

    }                                            
// Botão Cancelar
    private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {                                            
        txtNome.setEnabled(!true);
        txtNumSerie.setEnabled(!true);
        slctTipoEquip.setEnabled(!true);
        txtCentroCusto.setEnabled(!true);
        txtSublocado.setEnabled(!true);
        txtCodInterno.setEnabled(!true);
        txtNeceTrocaFiltro.setEnabled(!true);
        txtTempTrocaFiltro.setEnabled(!true);
        txtUltimTrocaFiltro.setEnabled(!true);
        txtHorasdeUso.setEnabled(!true);
    }                                           
//Botão Limpar
    private void btnLimparActionPerformed(java.awt.event.ActionEvent evt) {                                          
     txtNome.setText("");
        txtCentroCusto.setText("");
        txtCodInterno.setText("");
        txtHorasdeUso.setText("");
        txtNeceTrocaFiltro.setText("");
        txtNumSerie.setText("");
        txtSublocado.setText("");
        txtTempTrocaFiltro.setText("");
        txtUltimTrocaFiltro.setText("");
        slctTipoEquip.setSelectedIndex(0);   
    }                                         

    
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(CadastroEquipamentos.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(CadastroEquipamentos.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(CadastroEquipamentos.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(CadastroEquipamentos.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new CadastroEquipamentos().setVisible(true);
            }
        });
    }

Foto do Formulario :

Mensagens: 2

Participantes: 2

Ler tópico completo


Viewing all articles
Browse latest Browse all 17410

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>