Fala pessoa, tudo certo? eu estou tentando fazer uma busca simples na minha jTable, sem consulta com banco nem nada disso, apenas pelo q tem populado na tabela, isso seria possível?
Obs: a tabela é populada através de um xml q recebo via http, passo pra um list de elementos e depois para um list da classe.
É possível sim, ainda mais se vc estiver usando AbstractTableModel.
Marcos_Vinicios_Ange
Estou usando AbstractTableModel sim
segue o meu model →
publicclassImportDavTableModelextendsAbstractTableModel{privatefinalstaticlongserialVersionUID=1L;privatestaticfinalintID=0;privatestaticfinalintNUMERO_DAV=1;privatestaticfinalintDATAEMISSAO=2;privatestaticfinalintCLIENTE=3;privatestaticfinalintCOMPRADOR=4;privatestaticfinalintVENDEDOR=5;privatestaticfinalintVALOR_LIQUIDO=6;privateintrow=0;privatestaticList<Dav>valores;publicImportDavTableModel(List<Dav>valores){ImportDavTableModel.valores=newArrayList<>(valores);fireTableStructureChanged();}@OverridepublicintgetColumnCount(){return7;}@OverridepublicStringgetColumnName(intcolumn){if(column==ID)return"Id";if(column==NUMERO_DAV)return"N° Dav";if(column==DATAEMISSAO)return"Data de Emissão";if(column==CLIENTE)return"Cliente";if(column==COMPRADOR)return"Comprador";if(column==VENDEDOR)return"Vendedor";if(column==VALOR_LIQUIDO)return"Valor Líquido";thrownewIllegalArgumentException("Coluna não existe.");}@OverridepublicintgetRowCount(){returnvalores.size();}/** Retorna o número da linha selecionada */publicintgetSelectedRow(){returnrow;}@OverridepublicObjectgetValueAt(introw,intcolumn){this.row=row;// Recebe o numero da linha selecionadaDavdav=valores.get(row);if(dav==null)returnnull;switch(column){caseID:returndav.getId();caseNUMERO_DAV:returndav.getNumeroDav();caseDATAEMISSAO:returndav.getDataEmissao();caseCLIENTE:returndav.getCliente();caseCOMPRADOR:returndav.getComprador();caseVENDEDOR:returndav.getVendedor();caseVALOR_LIQUIDO:returndav.getValorLiquido();}thrownewIllegalArgumentException("Coluna não existe.");}publicbooleanisCellEditable(introwIndex,intcolumnIndex){if(columnIndex==3){returntrue;}else{returnfalse;}}publicvoidsetValueAt(ObjectaValue,introwIndex,intcolumnIndex){// imutável// throw new UnsupportedOperationException("Edição não é suportada.");}@SuppressWarnings("unchecked")public<T>voidatualizar(List<T>valores){ImportDavTableModel.valores=(List<Dav>)valores;// não cria uma nova lista, usa o mesmo objetofireTableDataChanged();}voidaddAll(Collection<Dav>dav){valores.addAll(dav);fireTableDataChanged();}voidclear(){valores.clear();fireTableDataChanged();}publicstaticDavget(introw){returnvalores.get(row);}}
e aqui a chamada dele →
privateJTablegetTableImportDav(){if(tableImportDavs==null){tableImportDavs=newJTable();tableImportDavs.addMouseListener(newMouseAdapter(){publicvoidmouseClicked(MouseEvente){if(e.getClickCount()==2){if(JOptionPane.showConfirmDialog(null,"Deseja Importar este dav?","WARNING",JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){ImportaDav.finalizaVendaDav(tableImportDavs,1014);}else{return;}}}});tableImportDavs.setAutoCreateRowSorter(true);tableImportDavs.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);tableImportDavs.setModel(newImportDavTableModel(newArrayList<Dav>()));tableImportDavs.getColumnModel().getColumn(0).setPreferredWidth(10);tableImportDavs.getColumnModel().getColumn(1).setPreferredWidth(20);tableImportDavs.getColumnModel().getColumn(2).setPreferredWidth(50);tableImportDavs.getColumnModel().getColumn(3).setPreferredWidth(50);tableImportDavs.getColumnModel().getColumn(4).setPreferredWidth(50);tableImportDavs.getColumnModel().getColumn(5).setPreferredWidth(50);tableImportDavs.getColumnModel().getColumn(6).setPreferredWidth(30);newImportaDav(1014,tableImportDavs);}returntableImportDavs;}