gpt4 book ai didi

java - 为什么我在 java 中的 JComboBox 的 ListCellRenderer 上出现类转换异常?

转载 作者:行者123 更新时间:2023-12-01 15:29:08 25 4
gpt4 key购买 nike

我有一个自定义组合框 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);
}

为什么我会得到

Exception in thread "AWT-EventQueue-1" java.lang.ClassCastException: java.lang.String

在ListCellRenderer类中一行:

Artikel artikels = (Artikel) value;

最佳答案

我假设 ComboBoxModelArtikel 是您的自定义 ComboBoxModel,它使用 List 或另一个 Collection

我还假设在调用时

panel.cbxArtikel = new WebComboBox(new ComboBoxModelArtikel(panel, lstArtikel));

您正确初始化了内部List(或代表您的模型的其他类)。

你有

JList.setPrototypeCellValue(Object prototypeCellValue)

在代码中的某个位置并使用 String 作为参数?您的自定义 ListCellRenderer 将使用您指定的 prototypeCellValue

进行调用

关于java - 为什么我在 java 中的 JComboBox 的 ListCellRenderer 上出现类转换异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9771577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com