Jump to content

Search the Community

Showing results for tags 'abstracttablemodel'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 2 results

  1. calves_oliveira

    Manipular Jtable

    Olá pessoal, sou iniciante e antes de postar aqui meu pedido de ajuda estou a uns dias pesquisando como sanar minhas duvidas mas sem sucesso. bom vamos, lá… Em um form tenho um campo jtextField, jtable e botões novo, inserir, atualizar, excluir e atualizar. manipular a tabela do banco de dados está tudo ok , carregar a jtable tbm! porem não estou conseguindo atualizar o jtable, ao excluir, editar sem ter que ficar buscando do BD o tempo todo até mesmo que não faz sentido isso. (vários lugares ensinam desta maneira). segue as classes: package Model.Table; import java.util.ArrayList; import javax.swing.table.AbstractTableModel; /** * * @author Usuario */ public abstract class TableModelPadrao extends AbstractTableModel { protected String[] colunas; protected ArrayList linhas; protected boolean[] colEditavel; public TableModelPadrao(ArrayList linhas) { setColunas(criarColunas()); setColEditavel(colEditavel); this.linhas = linhas; } protected abstract String[] criarColunas(); protected abstract boolean[] colEditavel(); @Override public int getRowCount() { if (linhas != null) { return linhas.size(); } else { return 0; } } @Override public int getColumnCount() { return colunas.length; } @Override public boolean isCellEditable(int row, int col) { return false; } @Override public Class getColumnClass(int c) { return getValueAt(0, c).getClass(); } @Override public String getColumnName(int col) { return colunas[col]; } //Getter e Setter public String[] getColunas() { return colunas; } public final void setColunas(String[] colunas) { this.colunas = colunas; } public ArrayList getLinhas() { return linhas; } public void setLinhas(ArrayList linhas) { this.linhas = linhas; fireTableDataChanged(); } public boolean[] getColEditavel() { return colEditavel; } public void setColEditavel(boolean[] colEditavel) { this.colEditavel = colEditavel; } public abstract void addRow(Object o); public abstract void removeRow(int linha); @Override public abstract void setValueAt(Object o, int linha, int coluna); } package Model.Table; import Model.ArroladoPor; import java.util.ArrayList; /** * * @author Usuario */ public class TableArroladoPor extends TableModelPadrao { public TableArroladoPor(ArrayList linhas) { super(linhas); } @Override public Object getValueAt(int rowIndex, int columnIndex) { ArroladoPor a = (ArroladoPor) linhas.get(rowIndex); switch (columnIndex) { case 0: return a.getIdArrolado(); case 1: return a.getDescricao(); default: throw new IndexOutOfBoundsException("Numero de colunas no TableArroladoPor" + " não é compativel com dados do banco"); } } @Override protected String[] criarColunas() { return new String[]{"Id", "Descricão"}; } @Override protected boolean[] colEditavel() { return new boolean[]{false, false}; } @Override public void addRow(Object o) { this.linhas.add(o); this.fireTableDataChanged(); } @Override public void removeRow(int linha) { this.linhas.remove(linha); this.fireTableRowsDeleted(linha, linha); } @Override public void setValueAt(Object obj, int linha, int coluna) { ArroladoPor a = (ArroladoPor) linhas.get(linha); //verifica qual valor vai ser alterado switch (coluna) { // case 0: // Primeira coluna é o codigo. // a.setIdArrolado(Integer.parseInt((String) obj)); // break; case 1: // Segunda coluna é o descricao. a.setDescricao(obj.toString()); break; } //avisa que os dados mudaram this.fireTableCellUpdated(linha, coluna); } } package Controller.Helper; import Model.ArroladoPor; import Dao.ArroladoPorDao; import Model.Table.TableArroladoPor; import View.Forms.FrmArroladoPor; import java.awt.Color; import java.sql.SQLException; import java.util.ArrayList; import javax.swing.JOptionPane; import javax.swing.JTable; import javax.swing.ListSelectionModel; import javax.swing.RowFilter; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.table.TableModel; import javax.swing.table.TableRowSorter; /** * * @author Usuario */ public class ArroladoPorHelper { private FrmArroladoPor view; private TableArroladoPor modeloTabela; private HelperForHall helperForHall; private ArroladoPorDao dao; private ArroladoPor objClasse; public ArroladoPorHelper(FrmArroladoPor view) throws SQLException { this.dao = new ArroladoPorDao(); this.view = view; this.helperForHall = new HelperForHall(); } public ArroladoPorHelper() { } public ArroladoPor getModeloArroladoPor() { String descricao = view.getTxtDescricao().getText().toUpperCase().trim(); int id = Integer.parseInt((view.getTabela().getValueAt(view.getTabela().getSelectedRow(), 0)).toString()); objClasse = new ArroladoPor(id, descricao); return objClasse; } public ArroladoPor getModeloInserir() { String descricao = view.getTxtDescricao().getText().toUpperCase().trim(); objClasse = new ArroladoPor(descricao); return objClasse; } public void inserir() throws SQLException { if (view.getTxtDescricao().getText().trim().equalsIgnoreCase("")) { JOptionPane.showMessageDialog(null, "O campo descrição não pode ficar vazio!", "Validação ", JOptionPane.ERROR_MESSAGE); view.getTxtDescricao().setBackground(Color.LIGHT_GRAY); } else { if (dao.VerificacaoSalvar(getModeloInserir()) != true) { dao.salvar(getModeloInserir());//SALVA NO BANCO modeloTabela.addRow(objClasse);//INSERI OBJ NA TABELA modeloTabela.fireTableDataChanged(); javax.swing.JOptionPane.showMessageDialog(null, "Novo registro armazenado com sucesso!", "Cadastro", JOptionPane.INFORMATION_MESSAGE); } else { javax.swing.JOptionPane.showMessageDialog(null, "Não foi possivel salvar, registro já existente!", "Verificação ao Salvar ", JOptionPane.ERROR_MESSAGE); } } } public void atualizar() throws SQLException { if (view.getTabela().getSelectedRow() != -1) { if (dao.verificaAlterar(getModeloArroladoPor()) == true) { JOptionPane.showMessageDialog(null, "Não foi possivel editar, registro já existente!", "Verificação ao Editar", JOptionPane.ERROR_MESSAGE); } else { dao.alterar(getModeloArroladoPor()); //ATUALIZA NO BANCO helperForHall.fieldClean(view.getPnlPesquisarPor()); //ATUALIZA A TABELA modeloTabela.setValueAt(getModeloArroladoPor(), view.getTabela().getSelectedRow(), 0); modeloTabela.setValueAt(getModeloArroladoPor(), view.getTabela().getSelectedRow(), 1); // modeloTabela.fireTableDataChanged(); JOptionPane.showMessageDialog(null, "Alteracão realizado com sucesso!", "Alteração", JOptionPane.INFORMATION_MESSAGE); } } } public void excluir() throws SQLException { String simNao[] = {"Sim", "Nao"}; int exclui = JOptionPane.showOptionDialog(null, "Confirma exclusão?", "Excluindo...", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, simNao, simNao[1]); if (exclui == 0) { if (view.getTabela().getSelectedRow() != -1) { if (dao.verificaExcluir(getModeloArroladoPor()) != true) { //NÃO EXISTE EM OUTRA TABELA PODE EXCLUIR dao.excluir(getModeloArroladoPor()); modeloTabela.removeRow(view.getTabela().getSelectedRow()); JOptionPane.showMessageDialog(null, "Exclusão realizado com sucesso!", "Exclusão", JOptionPane.INFORMATION_MESSAGE); } else { JOptionPane.showMessageDialog(null, "Registro existente em outra tabela!", "Verificação ", javax.swing.JOptionPane.ERROR_MESSAGE); } } } } public void carregaTabela() throws SQLException { ArrayList lista = (ArrayList) dao.selectAll(); modeloTabela = new TableArroladoPor(lista); configuraTabela(modeloTabela); } private void configuraTabela(TableArroladoPor model) { view.getTabela().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); ListSelectionModel lsm = view.getTabela().getSelectionModel(); lsm.addListSelectionListener(new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) { if (!e.getValueIsAdjusting()) { selecionarLinha(view.getTabela()); } } }); TableRowSorter<TableModel> sorter = new TableRowSorter<>(modeloTabela); view.getTabela().setRowSorter(sorter); view.getTabela().setModel(model); view.getTabela().getTableHeader().setReorderingAllowed(false); view.getTabela().getColumnModel().getColumn(0).setMinWidth(0); view.getTabela().getColumnModel().getColumn(0).setMaxWidth(0); } public void filtrarTabela() { TableRowSorter<TableModel> sorter = new TableRowSorter<>(modeloTabela); view.getTabela().setRowSorter(sorter); String text = view.getTxtPesquisar().getText().toUpperCase(); if (text.length() == 0) { sorter.setRowFilter(null); } else { sorter.setRowFilter(RowFilter.regexFilter(text)); } } public void selecionarLinha(JTable tabela) { if (tabela.getSelectedRow() != -1) { int lin = view.getTabela().getSelectedRow(); String descricao = (view.getTabela().getValueAt(lin, 1).toString().trim()); view.getTxtDescricao().setText(descricao); setarEstadoComponentes(3); } else { view.getTxtDescricao().setText(""); } } public void setarEstadoComponentes(int estado) { switch (estado) { //inicializa o formulario //Ao clicar excluir case 1: view.getTxtPesquisar().grabFocus(); view.getTxtPesquisar().setEnabled(true); view.getTabela().setEnabled(false); view.getTxtDescricao().setEnabled(false); view.getBtnNovo().setEnabled(true); view.getBtnSalvar().setEnabled(false); view.getBtnEditar().setEnabled(false); view.getBtnExcluir().setEnabled(false); view.getBtnSelecionar().setEnabled(false); break; //ao filtrar case 2: view.getTxtPesquisar().setEnabled(true); view.getTabela().setEnabled(true); view.getTxtDescricao().setEnabled(false); view.getBtnNovo().setEnabled(true); view.getBtnSalvar().setEnabled(false); view.getBtnEditar().setEnabled(false); view.getBtnExcluir().setEnabled(false); view.getBtnSelecionar().setEnabled(false); break; //Ao selecionar linha tabela case 3: view.getTxtPesquisar().setEnabled(true); view.getTabela().setEnabled(true); view.getTxtDescricao().setEnabled(false); view.getBtnNovo().setEnabled(false); view.getBtnSalvar().setEnabled(false); view.getBtnEditar().setEnabled(true); view.getBtnExcluir().setEnabled(true); view.getBtnSelecionar().setEnabled(false); break; //Ao clicar botão novo case 4: view.getTxtDescricao().grabFocus(); view.getTxtPesquisar().setEnabled(true); view.getTabela().setEnabled(false); view.getTxtDescricao().setEnabled(true); view.getBtnNovo().setEnabled(false); view.getBtnSalvar().setEnabled(true); view.getBtnEditar().setEnabled(false); view.getBtnExcluir().setEnabled(false); view.getBtnSelecionar().setEnabled(false); break; //Ao apertar Salvar case 5: view.getTxtDescricao().grabFocus(); view.getTxtPesquisar().setEnabled(true); view.getTabela().setEnabled(false); view.getTxtDescricao().setEnabled(true); view.getBtnNovo().setEnabled(false); view.getBtnSalvar().setEnabled(true); view.getBtnEditar().setEnabled(false); view.getBtnExcluir().setEnabled(false); view.getBtnSelecionar().setEnabled(false); break; //Ao apertar Editar case 6: view.getTxtDescricao().grabFocus(); view.getTxtPesquisar().setEnabled(true); view.getTabela().setEnabled(true); view.getTxtDescricao().setEnabled(true); view.getBtnNovo().setEnabled(false); view.getBtnSalvar().setEnabled(true); view.getBtnEditar().setEnabled(false); view.getBtnExcluir().setEnabled(false); view.getBtnSelecionar().setEnabled(false); break; default: break; } } }
  2. o próprio título eu acho que já descreve tudo, emfim minha tabela está recebendo as informações como null, alguém ae pode me ajudar? seguem os códigos: 1º tentando inserir as infos na minha tabela public void adiciona() throws ClassNotFoundException { Connection con = null; try { Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/dbge", "root", ""); java.sql.Statement stmt = con.createStatement(); String query = "select U.nome, C.codcaixa, C.valorfechamento, C.dt_fechamento from tbCaixa C\n" + "inner join tbusuario U on U.rm = C.codusuario"; ResultSet rs = stmt.executeQuery(query); while (rs.next()) { funcionarioCaixa fc = new funcionarioCaixa(nome, numerocaixa, valorfechamento, hora); String nome = rs.getString("nome"); int codcaixa = rs.getInt("codcaixa"); double valorfechamento = rs.getDouble("valorfechamento"); Date data = rs.getDate("dt_fechamento"); this.tableModelPessoa.addCaixa(fc); } } catch (SQLException ex) { JOptionPane.showMessageDialog(null, "Erro ao receber variáveis" + ex); } } 2º minha classe funcionarioCaixa public class funcionarioCaixa { public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public int getNumerocaixa() { return numerocaixa; } public void setNumerocaixa(int numerocaixa) { this.numerocaixa = numerocaixa; } public double getValorfechamento() { return valorfechamento; } public void setValorfechamento(double valorfechamento) { this.valorfechamento = valorfechamento; } public Date getHora() { return hora; } public void setHora(Date hora) { this.hora = hora; } public funcionarioCaixa(String nome, int numerocaixa, double valorfechamento, Date hora) { this.nome = nome; this.numerocaixa = numerocaixa; this.valorfechamento = valorfechamento; this.hora = hora; } String nome; int numerocaixa; double valorfechamento; Date hora; }
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.