Boa tarde galera, estou estudando java tenho muitas dificuldades, tenho um formulário de cadastro de produto (InternalFrame) e um botão Pesquisar que abre um InternalFrame está abrindo normal e pesquisando o produto sem problema, minha dificuldade é a seguinte quando eu pesquiso ele joga os resultado da na tabela, queria fazer nesse formulário de pesquisa tem um botão (Ok) queria saber como faz para quando o usuário selecionar o registro na tabela e clicar no botão (Ok) ele joga os registros no Formulário original já com os campos carregados.
#Meu ModeloTabela
package br.com.sis.model;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
public class ModelTableProduto extends AbstractTableModel {
private final int COLUNA_ID = 0;
private final int COLUNA_PRODUTO = 1;
private final int COLUNA_QUANTIDADE = 2;
private final int COLUNA_PRECO = 3;
private List<ModelProduto> produtos;
public ModelTableProduto() {
produtos = new ArrayList();
}
public ModelTableProduto(List<ModelProduto> lista) {
this();
produtos.addAll(lista);
}
public int getRowCount() {
return produtos.size();
}
public int getColumnCount() {
return 4;
}
@Override
public Class getColumnClass(int columnIndex) {
if (columnIndex == COLUNA_ID) {
return String.class;
} else if (columnIndex == COLUNA_PRODUTO) {
return String.class;
} else if (columnIndex == COLUNA_QUANTIDADE) {
} else if (columnIndex == COLUNA_PRECO) {
}
return String.class;
}
@Override
public String getColumnName(int column) {
if (column == COLUNA_ID) {
return "ID";
} else if (column == COLUNA_PRODUTO) {
return "PRODUTO";
} else if (column == COLUNA_QUANTIDADE) {
return "QTD";
} else if (column == COLUNA_PRECO) {
return "Preço";
}
return "";
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
ModelProduto p = produtos.get(rowIndex);
if (columnIndex == COLUNA_ID) {
return p.getId();
} else if (columnIndex == COLUNA_PRODUTO) {
return p.getNomepruduto();
} else if (columnIndex == COLUNA_QUANTIDADE) {
return p.getQuantidade();
} else if (columnIndex == COLUNA_PRECO) {
return p.getPreco();
}
return "";
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
ModelProduto p = produtos.get(rowIndex);
if (columnIndex == COLUNA_ID) {
} else if (columnIndex == COLUNA_PRODUTO) {
p.setNomepruduto(aValue.toString());
} else if (columnIndex == COLUNA_QUANTIDADE) {
p.setQuantidade(aValue.toString());
} else if (columnIndex == COLUNA_PRECO) {
}
fireTableCellUpdated(rowIndex, columnIndex);
}
}
Modelo Produto com get e set
package br.com.sis.model;
public class ModelProduto {
private int id;
private String nomepruduto;
private String quantidade;
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
private double preco;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNomepruduto() {
return nomepruduto;
}
public void setNomepruduto(String nomepruduto) {
this.nomepruduto = nomepruduto;
}
public String getQuantidade() {
return quantidade;
}
public void setQuantidade(String quantidade) {
this.quantidade = quantidade;
}
}
ProdutoDAO
package br.com.sis.controller;
import br.com.sis.conexao.ConnectionFactory;
import br.com.sis.model.ModelProduto;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
public class ProdutoDAO {
public List<ModelProduto> buscarProduto(String p) {
try {
Connection conn = ConnectionFactory.getConnection();
PreparedStatement pst = conn.prepareStatement("select * from produto where produto ilike '%" + p + "%'");
ResultSet rs = pst.executeQuery();
List<ModelProduto> result = new ArrayList<ModelProduto>();
while (rs.next()) {
ModelProduto t = new ModelProduto();
t.setId(rs.getInt("id"));
t.setNomepruduto(rs.getString("produto"));
t.setQuantidade(rs.getString("quantidade"));
t.setPreco(rs.getDouble("preco"));
result.add(t);
}
return result;
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Erro ao buscar os Produtos" + e.getMessage());
return null;
}
}
public void SalvarRegistro(ModelProduto modelo) {
try {
Connection conn = ConnectionFactory.getConnection();
String sql = "insert into produto(produto,quantidade,preco) values(?,?,?)";
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, modelo.getNomepruduto());
pst.setString(2, modelo.getQuantidade());
pst.setDouble(3, modelo.getPreco());
pst.execute();
JOptionPane.showMessageDialog(null, "Salvo com sucesso");
} catch (Exception erro) {
JOptionPane.showMessageDialog(null, "Erro ao salvar o registro" + erro.getMessage());
}
}
public void AtualizarRegistro(ModelProduto modelo) {
try {
Connection conn = ConnectionFactory.getConnection();
String sql = "update produto set id=?, produto=?, quantidade=?, preco=? where id=?";
PreparedStatement pst = conn.prepareStatement(sql);
pst.setInt(1, modelo.getId());
pst.setString(2, modelo.getNomepruduto());
pst.setString(3, modelo.getQuantidade());
pst.setDouble(4,modelo.getPreco());
pst.setInt(5, modelo.getId());
pst.execute();
JOptionPane.showMessageDialog(null, "Alterado com sucesso");
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Erro ao salvar o registro" + e.getMessage());
}
}
public void ExcluirRegistro(ModelProduto modelo){
try {
Connection conn = ConnectionFactory.getConnection();
String sql="delete from produto where produto=?";
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1,modelo.getNomepruduto());
pst.execute();
JOptionPane.showMessageDialog(null, "Excluido com sucesso \n");
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Erro na Exclusão: \n" + e.getMessage());
}
}
}