私はオブジェクト(Artikel.java)のリストを持っており、それらをJComboBoxに追加します。 このオブジェクトのプロパティ(文字列名)をリストに入れたいですか?私は以下のようにしましたが、オブジェクトがリストにあり、読むことができません。オブジェクトのプロパティをコンボボックスに追加しますか?
どうすればいいですか?私の問題はどこですか?
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()私は1つのクラスで問題を再現し、それが動作しているようだ
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/)を投稿してください。 –