botaoProcurar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
listProdutos rprodutos = new listProdutos();
rprodutos.setVisible(true);
CadastroProduto produto = new CadastroProduto();
produto = rprodutos.getProdutoLinha();
if (produto != null) {
txtNomeProduto.setText(String.valueOf(produto
.getNome_produto()));
}
A classe ProdutoTableModel , o modelo da tabela.
public ProdutoTableModel() {
produtos = new CadastroProdutoDAO().lista();
}
public ProdutoTableModel(List<CadastroProduto> lista) {
this();
produtos.addAll(lista);
}
@Override
public Class<?> getColumnClass(int coluna) {
return String.class;
}
@Override
public int getColumnCount() {
return 4;
}
@Override
public String getColumnName(int coluna) {
switch (coluna) {
case 0:
return "CÓDIGO"; colun
case 1:
return "NOME";
case 2:
return "VALOR $";
case 3:
return "ESTOQUE";
default:
return "";
}
}
@Override
public int getRowCount() {
return produtos.size();
}
@Override
public Object getValueAt(int linha, int coluna) {
CadastroProduto c = produtos.get(linha);
switch (coluna) {
case 0:
return c.getIdcadastroProduto();
case 1:
return c.getNome_produto();
case 2:
return c.getValor_venda();
case 3:
return c.getEstoque();
default:
return null; }
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
public void adiciona(CadastroProduto c) {
produtos.add(c);
fireTableRowsInserted(produtos.size() - 1, produtos.size() - 1);
}
public int getIndice(CadastroProduto c) {
return produtos.indexOf(c);
}
public void adicionaLista(List<CadastroProduto> lista) {
int i = produtos.size();
produtos.addAll(lista);
fireTableRowsInserted(i, i + lista.size());
}
public CadastroProduto getCadastroProduto(int linha) {
return produtos.get(linha);
}
e a classe que popula a tabela
public void instanciaComponentes() {
modelo = new ProdutoTableModel();
modelo.addTableModelListener(this);
tabela = new JTable();
tabela.setModel(modelo);
tabela.setVisible(true);
scrollPane = new JScrollPane();
scrollPane.setViewportView(tabela);
botaoAdicionar = new JButton();
botaoAdicionar.setText("Adicionar");
botaoAdicionar.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int indice = tabela.getSelectedRow();
CadastroProduto prod = modelo.getCadastroProduto(indice);
produto = prod;
dispose();
}
});
}
public Produto retornaProdutoSelecionado() {
modelo = (ProdutoTableModel) tabela.getModel();
return modelo.getCadastroProduto(tabela.getSelectedRow());
}
public Produto getProdutoLinha() {
return produto;
}
private void adicionaComponentes() {
getContentPane().add(scrollPane);
JPanel panel = new JPanel();
getContentPane().add(panel, BorderLayout.SOUTH);
panel.add(botaoAdicionar);
}
private void ajustaJanela() {
setTitle("Produtos Cadastrados");
pack();
setLocationRelativeTo(null);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setVisible(true);
}
@Override
public void tableChanged(TableModelEvent e) {
String tipo;
switch (e.getType()) {
case TableModelEvent.DELETE:
tipo = "DELETE";
break;
case TableModelEvent.INSERT:
tipo = "INSERT";
break;
case TableModelEvent.UPDATE:
tipo = "UPDATE";
break;
default:
tipo = "?";
break;
}
System.out.printf("%s: %d-%d, %d%n", tipo, e.getFirstRow(),
e.getLastRow(), e.getColumn());
}
me basei em dicas e códigos ja postados aqui no forum. a princípio tabela resgata os dados mas antes de mostrar os dados na tabela ele chama o método do meu formPrincipal [getProdutoLinha();] e gera uma exceção pois ainda n selecionei nenhum item... alguem tem idéia do que seja?
Obrigada
