我有對象列表(Artikel.java),我將它們添加到JComboBox。 我想要這個對象的屬性(字符串名稱)在列表中?我做了如下但stil的對象是在列表中,它不可讀。將對象的屬性添加到組合框?
我該怎麼辦?我的問題在哪裏?
if (titel.equalsIgnoreCase("artikel")) {
panel.lstArtikel = readFromArtikel();
panel.cbxArtikel = new WebComboBox(new ComboBoxModelArtikel(panel, lstArtikel));
panel.cbxArtikel.setAction(new ComboBoxArtikelActionListener(panel));
panel.cbxArtikel.setRenderer(new ArtikelListRenderer());
panel.artikelTabPanel.add(panel.cbxArtikel, BorderLayout.NORTH);
}
ComboBoxModelArtikel
public class ComboBoxModelArtikel implements ComboBoxModel{
ConfigToolScannersPanel panel; List<Artikel> lstArtikels;
private Object selectedItem;
public ComboBoxModelArtikel(ConfigToolScannersPanel panel, List<Artikel> artikels) {
this.panel=panel; this.lstArtikels=artikels;
}
public void setSelectedItem(Object anItem) {
selectedItem=anItem;
}
public Object getSelectedItem() {
return selectedItem;
}
public int getSize() {
return lstArtikels.size();
}
public Object getElementAt(int index) {
return (Artikel)lstArtikels.get(index);
}
public void addListDataListener(ListDataListener l) {
//Todo:
}
public void removeListDataListener(ListDataListener l) {
//Todo:
}
}
ArtikelListRenderer()
class ArtikelListRenderer extends JLabel implements ListCellRenderer {
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
if (value != null) {
Artikel artikels = (Artikel) value;
setText(artikels.getName());
} else{
setText("Please select an item");
}
return this;
}
}
爲了更好地提供幫助,請發佈[SSCCE](http://sscce.org/)。 – 2012-03-19 13:02:44