mam taki własny ListModel
package core;
import javax.swing.AbstractListModel;
import java.util.List;
import java.util.ArrayList;
class ClientListModel extends AbstractListModel {
public List cList;
public void addElement(Client client) {
if(cList.add(client)) {
fireIntervalAdded(this, 0, getSize());
}
}
public int getSize() {
return cList.size();
}
public Object getElementAt(int index) {
return cList.get(index);
}
}
i takie wywołanie JList
listModel = new ClientListModel();
for(int i = 0; i < clients.size(); i++) {
Client client = (Client)clients.get(i);
listModel.addElement(client);
// frame.add(centerPanel, BorderLayout.CENTER);
}
cList = new JList(listModel);
cList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
cList.setSelectedIndex(0);
cList.setVisibleRowCount(5);
Wyświetla się fajnie bo do obiektu Client dodałem metodę toString()
Jednak dalej nie wiem jak przekazać obiekt. Chodzi mi o to, że jak wybiore coś z listy i klikne guzik to chce mieć obiekt a nie wartość z listy. Teraz jak klikam no mi się wyświetla np. gościu1, gościu2 jako String. Wykorzystuje do tego getSelectedValue(). Ja chce mieć dostęp do obiektu. Może coś mylę i gubię.
// EDIT
Poradziłem sobie. Zrobiłem rzutowanie
Client client = (Client)this.list.getSelectedValue();