Galera empaquei aqui nesse treco... Tenho uma JList com modelo de 2 carros, que foram retornados como uma Collection, do método addCarro()
Minha dúvida é, qual a melhor maneira de fazer com que ao clicar em um dos carros na JList, ele retorne ou busque, o mesmo objeto Carro, para que possa ser usado em outras telas e/ou explorar as suas outras propriedades ?
import java.awt.Color;
import java.awt.Container;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class TelaJList extends JFrame {
public TelaJList() {
tela();
}
DefaultListModel modeloLista = new DefaultListModel();;
JPanel painel = new JPanel();
JList lista = new JList(modeloLista);
Container c = getContentPane();
public void tela() {
this.setSize(175, 140);
this.setLocation(200, 100);
this.setResizable(false);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
Collection<Carro> colecao = this.addCarro();
Iterator<Carro> it = colecao.iterator();
while (it.hasNext()) {
Carro car = (Carro) it.next();
modeloLista.addElement(car.getModelo());
}
painel.setLayout(null);
painel.setBackground(Color.darkGray);
lista.setBackground(Color.white);
lista.setBounds(02, 02, 170, 50);
lista.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
}
});
painel.add(lista);
c.add(painel);
}
public static Collection<Carro> addCarro() {
Carro car1 = new Carro();
car1.setPlaca("SDF 1234");
car1.setModelo("Golf");
Carro car2 = new Carro();
car2.setPlaca("NMW 7894");
car2.setModelo("Fusca");
Collection<Carro> carros = new ArrayList<Carro>();
carros.add(car1);
carros.add(car2);
return carros;
}
public static void main(String[] args) {
new TelaJList().show();
}
}
A Classe Carro:
public class Carro {
private String placa;
private String modelo;
public String getModelo() {
return modelo;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}
public String getPlaca() {
return placa;
}
public void setPlaca(String placa) {
this.placa = placa;
}
}
Valeuuu !