Olá amigos, venho pedir humildemente ajuda para fazer uma pesquisa em uma Jtable que mostra dados de uma array list, em minha pesquisas na internet sobre o assunto não tenho compreendido muito bem sobre o assunto, apenas sei que tenho visto muito sobre tablemodel, tablerowsorter e muito mal sobre default table model.
Tenho um código que peguei da internet e tentei implementar no meu código, de inicio achei que funcionaria depois de fazer as devidas correções, mas infelizmente não.
Então peço uma ajuda para a correção do meu código e também uma ajuda para que eu possa entender com mais clareza sobre tal assunto que enfrento certa dificuldade, abaixo segue o código e agradeço muito desde já!
Trata-se de um programa que cadastra produtos com campos de codigo, quantidade, preço e descrição.
`
public FrmProdutos() {
initComponents();
try {
DecimalFormat df = new DecimalFormat("R$ #,###,##0.00;-R$ #,###,##0.00");
mfPreco = new NumberFormatter(df);
mfPreco.setValueClass(Double.class);
DefaultFormatterFactory dffPreco = new DefaultFormatterFactory(mfPreco);
txtPreco.setFormatterFactory(dffPreco);
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "Ocorreu um Exception na aplicação do NumberFormatter: " + ex.getMessage(),
"Erro: ", JOptionPane.ERROR_MESSAGE);
}
}
private void btnGravarActionPerformed(java.awt.event.ActionEvent evt) {
int linha = tblProduto.getSelectedRow();
try {
Produto produtoTemp = new Produto();
produtoTemp.setCodPro(Integer.valueOf(txtCodigo.getText()));
produtoTemp.setDescricao(txtDescricao.getText());
produtoTemp.setQuantidade((Integer) spnQuantidade.getValue());
produtoTemp.setPrecoUnit((Double) txtPreco.getValue());
if (oper == Operacao.GRAVAR) {
pro.add(produtoTemp);
}
if (oper == Operacao.EDITAR) {
pro.set(linha, produtoTemp);
}
else {
for (Produto produto : pro) {
if (produtoTemp.getCodPro() == produto.getCodPro()) {
produto.setDescricao(produtoTemp.getDescricao());
produto.setQuantidade(produtoTemp.getQuantidade());
produto.setPrecoUnit(produtoTemp.getPrecoUnit());
}
}
}
btnCancelarActionPerformed(null);
atualizaTabela(pro);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Ocorreu um erro ao Gravar"
+ e.getMessage(), "Erro:", JOptionPane.ERROR_MESSAGE);
}
}
//duvida
private void btnPesquisaActionPerformed(java.awt.event.ActionEvent evt) {
TableRowSorter sorter = new TableRowSorter();
tblProduto.setRowSorter(sorter);
String texto = txtFiltro.getText();
if (texto.length() == 0) {
sorter.setRowFilter(null);
JOptionPane.showMessageDialog(null, "Você Deve Informar um Valor!!!", "AVISO - Erro", JOptionPane.ERROR_MESSAGE);
} else {
try {
sorter.setRowFilter(RowFilter.regexFilter("(?i)" + texto));
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "Valor Não Encontrado!!!", "AVISO - Erro", JOptionPane.ERROR_MESSAGE);
}
}
}
`
pode mostrar onde vc preenche ele, quero como vc esta manipulando o preenchimento do modelo, para que assim eu possa analisar como sera feita a pesquisa neste jTable