Fala galera,
Preciso de uma ajuda, tenho 2 tabelas e precisava que ao selecionar algum item na primeira tabela os dados da segunda tabela fosse alterado conforme o item selecionado na primeira.
Por exemplo: a primeira tabela possui nomes de produtos (feijão,arroz,macarrão) e a segunda contém a marca, valor, peso etc. Precisava que ao selecionar feijão na tabela 1 ele mostre as informações apenas do feijão na tabela 2.
Eu criei um método chamado “pesquisa” e não está dando certo.
Se poderem me ajudar a ajustar esse método ou fazer de alguma forma melhor.
public class Mercado extends AbstractTableModel{
private List<Produtos> dados = new ArrayList<>();
private String[] colunas = {"Marca","Valor","Peso"};
@Override
public String getColumnName(int column) {
return colunas[column];
}
@Override
public int getRowCount() {
return dados.size();
}
@Override
public int getColumnCount() {
return colunas.length;
}
@Override
public Object getValueAt(int linha, int coluna) {
switch(coluna){
case 0:
return dados.get(linha).getMarca();
case 1:
return dados.get(linha).getValor();
case 2:
return dados.get(linha).getPeso();
case 3:
return dados.get(linha).getName();
}
return null;
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return true;
}
@Override
public void setValueAt(Object valor, int linha, int coluna) {
switch (coluna) {
case 0:
dados.get(linha).setMarca((String) valor);
break;
case 1:
dados.get(linha).setValor((int) valor);
break;
case 2:
dados.get(linha).setPeso((int) valor);
break;
case 3:
dados.get(linha).setName((String) valor);
}
this.fireTableRowsUpdated(linha, linha);
}
public void addRow(Produto p){
this.dados.add(p);
this.fireTableDataChanged();
}
public void removeRow(int linha){
this.dados.remove(linha);
this.fireTableRowsDeleted(linha, linha);
}
public void addPesquisa(String name) {
List<]Produtos> dados2 = new ArrayList<>();
dados2.clear();
dados2.addAll(dados);
this.fireTableDataChanged();
int size = getRowCount();
this.dados.clear();
this.fireTableRowsDeleted(0, size);
for (Produtos t : dados2) {
if (t.getName().equals(name)) {
this.dados.add(t);
this.fireTableDataChanged();
}
}
this.dados.clear();
this.dados.addAll(dados2);
}