Pierwsza metoda: implementacja toString()
na klasie pracownika i zwrócenie jej nazwy. Spraw, aby twój model pola kombi zawierał instancje pracownika. Po pobraniu wybranego obiektu z kombinacji otrzymasz instancję Employee, dzięki czemu otrzymasz jego identyfikator.
Druga metoda: jeśli toString()
zwraca coś innego niż nazwa (na przykład informacje dotyczące debugowania), wykonaj to samo, co powyżej, ale dodatkowo ustaw niestandardowy mechanizm renderujący komórki w swoim combo. Ten renderer komórek będzie musiał rzucić wartość dla pracownika i ustawić tekst etykiety na nazwisko pracownika.
public class EmployeeRenderer extends DefaulListCellRenderer {
@Override
public Component getListCellRendererComponent(JList<?> list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
setText(((Employee) value).getName());
return this;
}
}
Czuję, że lepiej jest użyć renderer zamiast zmienić 'na String() ', aby dopasować się do GUI. –