私は以下のようにカスタムコンボボックスListCellRendererを持っています。JavaのJComboBoxのListCellRendererでクラスキャスト例外が発生するのはなぜですか?
class ArtikelListRenderer extends JLabel implements ListCellRenderer {
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
Artikel artikels = (Artikel) value;
setText(artikels.getName());
return this;
}
}
このレンダリングを以下のようにコンボボックスに追加します。
public void setUpArtikelComboBox() {
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);
}
は、なぜ私はラインでのListCellRendererクラスの
Exception in thread "AWT-EventQueue-1" java.lang.ClassCastException: java.lang.String
を得るのです:
Artikel artikels = (Artikel) value;
として指定するものは何でもして呼び出されます(http://stackoverflow.com/questions/9770549/add-a-property-of-object-to-combo-box)[重複した質問を参照] – mKorbel