Ir para conteúdo
  • ×   Você colou conteúdo com formatação.   Remover formatação

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

  • Conteúdo Similar

    • Por Rodrigo Bigas
      Olá colegas, 
      Desenvolvi um sistema simples de boletim escolar. Conforme os dados são inseridos nas textfields ao clicar no botão Resultado, deverá mostrar em uma JTable. O problema é que a última coluna (resultado) da JTable tem que estar dentro de uma condição if/else para setar se o aluno está "aprovado", "em recuperação" ou "reprovado conforme a condição". Estou com dificuldades em descobrir qual é o método correto que seta este resultado de forma dinâmica. Segue os prints:
       
      Conforme o código e o print acima, o sistema funciona somente para a primeira linha, porque está setando de forma estática, obtendo os valores do índice e coluna, qual seria o método para setar o valor de forma dinâmica do índice e coluna?
    • Por Bianca Leonardo
      Olá, pessoal.
      Estou desenvolvendo um sistema onde em uma tela de cadastro de pedidos existe um jbutton para pesquisar produtos, ao cliclar nesse botão abre uma nova JFrame com o campo pesquisar e uma Jtable. 
      Ao selecionar uma linha no JTable o Id do produto, e nome deveria retornar para a tela JFrame aberta anteriormente (o que não esta acontecendo, pois está abrindo uma nova tela de pedidos com os campos devidamente preenchidos).
       
      Código da Tela de pedido chamando a tela pesquisar produto:
       
      private void btnPesquisarProdutoActionPerformed(java.awt.event.ActionEvent evt) {                                                             // abrir a tela pesquisar produto         TelaPesquisarProdutos produtos = new TelaPesquisarProdutos();         produtos.setVisible(true);         this.add(produtos);  
      código da tela pesquisar produto setando os campos na tela pedido:
      private void tblProdutosMouseClicked(java.awt.event.MouseEvent evt) {                                                  TelaPedidos frame = new TelaPedidos();                  frame.jTabbedPane1.setSelectedIndex(1);         frame.txtIdProduto.setText(tblProdutos.getValueAt(tblProdutos.getSelectedRow(), 0).toString());         frame.txtProduto.setText(tblProdutos.getValueAt(tblProdutos.getSelectedRow(), 1).toString());                  frame.setVisible(true);         this.dispose();     }  
      Resumindo, só quero que os dois campos do JTable retorne para o primeiro JFrame aberto.
       
       
    • Por calves_oliveira
      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; } } }
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.