Caros,
estou fazendo uma classe RemoverProduto, que removerá produtos da minha ArrayList.
O que acontece é que cheguei em uma parte que não sei como fazer; olhem a classe e eu explicarei a dúvida:
[code]
package pkgTP;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class RemoverProduto extends JFrame implements ActionListener{
private JList lprodutos;
private JButton remover;
private String l1 = " Produtos Encontrados: ";
private String l2 = " ";
private DefaultListModel listModel = null;
public RemoverProduto(){
super("Procurar Produto");
setSize(400,200);
getContentPane().setLayout(new GridLayout(1,1));
JPanel pbuscapro = new JPanel(new GridLayout(1,2));
remover = new JButton("Remover");
listModel = new DefaultListModel();
lprodutos = new JList(listModel);
lprodutos.setVisibleRowCount(5);
lprodutos.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
pbuscapro.add(lprodutos);
pbuscapro.add(new JScrollPane(lprodutos));
pbuscapro.add(remover);
getContentPane().add(pbuscapro);
remover.addActionListener(this);
popLista();
}
public void popLista(){
listModel.addElement(l1);
listModel.addElement(l2);
for ( int i = 0; i < Testes.loja.produto.size(); i++ ){
if(Testes.loja.produto.get(i) instanceof Calcado){
Calcado cal = (Calcado) Testes.loja.produto.get(i);
listModel.addElement("Descrição: " + cal.getDescricao() + " Cor: " + cal.getCor() + " Número: " + cal.getNumero() + " Gênero: " + cal.getGenero());}
}
}
public void actionPerformed(ActionEvent action){
/*String desc;
String cor;
int num;
String gen;*/
int index = lprodutos.getSelectedIndex();
/*desc = cal.getDescricao();
cor = cal.getCor();
num = cal.getNumero();
gen = cal.getGenero();*/
listModel.remove(index);
//Testes.loja.excluirProdutoCalcado(desc, num, cor, gen);
}
}[/code]
Bom, como vcs podem ver, coloco todos os itens de um determinado tipo de produto em um JList, que será
visualizada pelo usuário, o que eu quero fazer é que quando o usuário selecionar um produto na JList e clicar em remover
esse produto seja excluido da minha ArrayList Produto, o que acontece é que tenho um método na minha classe Loja, olhem:
[code]public void excluirProdutoCalcado(String descricao, int num, String cor , String genero){
try{
int cont = 0;
for(int i = 0; i < produto.size(); i++){
Calcado pro = (Calcado) produto.get(i);
if(pro.getDescricao().equalsIgnoreCase(descricao) && pro.getNumero() == num && pro.getCor().equalsIgnoreCase(cor) && pro.getGenero().equalsIgnoreCase(genero)){
int op = JOptionPane.showConfirmDialog(null, "Você deseja realmente remover esse Produto?",
"Remover Produto - Calçados", JOptionPane.OK_CANCEL_OPTION);
cont = 1;
if (op == JOptionPane.CANCEL_OPTION)
break;
produto.remove(i);
if (op == JOptionPane.OK_OPTION)
JOptionPane.showMessageDialog(null, "Produto removido com sucesso!", "Remover Produto - Calçados", JOptionPane.INFORMATION_MESSAGE);
break;
}
if(cont != 1)
JOptionPane.showMessageDialog(null, "Nenhum Produto encontrado!", "Remover Produto - Calçados", JOptionPane.ERROR_MESSAGE);
}}
catch(ClassCastException cb){
JOptionPane.showMessageDialog(null, "Nenhum Produto Cadastrado!", "Remover Produto - Calçados", JOptionPane.ERROR_MESSAGE);
}
}
[/code]
que recebe como parâmetros as caractetrísticas desse produto e o encontra na ArrayList para poder excluí-lo, e minha dúvida é justamente essa,
como pegar esses parâmetros na JList e passar para o método, se olharem na classe acima eu tentei fazer isso, mas não deu certo.
Estou aceitando correções no código ou outra solução mais eficiente que alguem tiver.
Fico no aguardo.
Grato
Pablo