@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