【问题标题】:Java JComboBox Incompatible Types: Cannot be converted to stringJava JComboBox 不兼容类型:无法转换为字符串
【发布时间】:2017-03-26 13:21:22
【问题描述】:

当我尝试在 JComboBox 中添加项目时出现此错误

不兼容的类型:ComboBox 无法转换为字符串

这是我将数据从数据库加载到 JComboBox 的方法...

public final void loadProducts()
{
    try 
    {
        String sql = "SELECT * from product";
        ps = conn.prepareStatement(sql);
        rs = ps.executeQuery();

        while (rs.next())
        {
            combobox.addItem(new ComboBox(rs.getString(2), rs.getString(1)));
        }
        combobox.setSelectedIndex(-1);
    } 
    catch (SQLException ex) 
    {
        System.out.println(ex);
    }
}

这就是类

public class ComboBox
{
    private String key;
    private String value;

public ComboBox(String key, String value)
{
    this.key = key;
    this.value = value;
}

@Override
public String toString()
{
    return key;
}

public String getKey()
{
    return key;
}

public String getValue()
{
    return value;
}
}

我不知道是什么原因造成的!谁能指出我的错误?

【问题讨论】:

  • 你想在这里做什么:combobox.addItem(new ComboBox(rs.getString(2), rs.getString(1))); 将 jcombobox 添加到 jcombobox 是没有意义的
  • 我正在尝试做这样的事情 combobox.addItem(new ComboBox("Visible String 1", "Value 1")); -- combobox 是我的 JComboBox 的名称,ComboBox 是一个类
  • addItem 只接受字符串,因此出现错误。你为什么不正确地重新实现你的 toString() 并改用它。
  • 尝试添加类ComboBox空构造函数和方法设置器

标签: java jcombobox


【解决方案1】:

如果不知道combobox 是如何声明的以及在哪一行抛出异常,就很难确定...

我的猜测:combobox 被声明为一个接受 String 的 JComboBox,并且由于添加了 ComboBox 而不是 String,因此引发了异常。

可能的更正:声明 JComboBox 以保存 ComboBox 的实例:

private JComboBox<ComboBox> combobox;

【讨论】:

    【解决方案2】:

    只需将代码属性中的 Type Parameter 更改为 ComboBox 或将放在 .addItem 方法中的任何类名

    【讨论】:

      猜你喜欢
      • 2014-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-30
      • 1970-01-01
      • 1970-01-01
      • 2018-07-05
      • 1970-01-01
      相关资源
      最近更新 更多