}catch(SQLExceptione){System.out.println("Falha ao realizar a consulta no BD");}}//Variablesdeclaration-donotmodifyprivatejavax.swing.JButtonjButton1;privatejavax.swing.JButtonjButton2;privatejavax.swing.JScrollPanejScrollPane1;privatejavax.swing.JTablejTable1;privatejavax.swing.JTextFieldtxtpesquisa;//Endofvariablesdeclaration
Estenda a classe AbstractTableModel para renderizar um List de objetos Produto.
Aí no seu laço, basta inserir produtos na lista.
Ramon_Sobreira
preciso estender a classe da janela mesmo? ou crio uma nova classe
Solucao aceita
staroski1 like
Não há nenhuma “classe da janela” a ser estendida. AbstractTableModel é uma classe abstrata que já implementa alguns métodos da interface TableModel
Um TableModel atua como fonte de dados para um componente JTable.
Você vai criar uma nova classe que estende o AbstractTableModel, essa classe pode ser uma classe interna privada da sua janela.
Suponha que você tenha a seguinte classe para representar um produto:
Aí basta você alimentar sua JTable da seguinte forma:
privatevoidjButton2ActionPerformed(java.awt.event.ActionEventevt){Stringtexto=txtpesquisa.getText();ResultSetresultset=dao.buscartexto(texto);List<Produto>produtos=newArrayList<>();try{while(resultset.next()){// ler dados do bancoStringcodigo=resultset.getString("Codigo");Stringnome=resultset.getString("produto");Stringcategoria=resultset.getString("categoria");doublepreco=resultset.getDouble("preco");// criar objeto produto com o valor desses dadosProdutoproduto=newProduto();produto.setCodigo(codigo);produto.setNome(nome);produto.setCategoria(categoria);produto.setPreco(preco);// adicionar produto à lista de produtosprodutos.add(produto);}}catch(SQLExceptione){System.out.println("Falha ao realizar a consulta no BD");}finally{jTable1.setModel(newTableModelProdutos(produtos));// atualizar o modelo da JTable com os produtos pesquisados}}
Ramon_Sobreira
obrigado pela explicação, sensacional. vou procurar estudar sobre essas classes, realmente não conhecia. funcionou tudo aqui, obrigado!