Java JComboBox 不兼容的类型:无法转换为字符串
Java JComboBox Incompatible Types: Cannot be converted to string
当我尝试在 JComboBox 中添加项目时出现此错误
incompatible types: ComboBox cannot be converted to String
这是我将数据从数据库加载到 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);
}
}
这是 class
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
以及在哪一行抛出异常,则很难确定...
我的猜测:combobox
被声明为采用 String
的 JComboBox 并且您抛出了异常,因为添加的是 ComboBox
而不是 String
.
可能的更正:声明 JComboBox 以保存 ComboBox
:
的实例
private JComboBox<ComboBox> combobox;
只需将代码属性中的类型参数更改为 ComboBox
或将放入 .addItem
方法中的任何 class 名称
当我尝试在 JComboBox 中添加项目时出现此错误
incompatible types: ComboBox cannot be converted to String
这是我将数据从数据库加载到 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);
}
}
这是 class
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
以及在哪一行抛出异常,则很难确定...
我的猜测:combobox
被声明为采用 String
的 JComboBox 并且您抛出了异常,因为添加的是 ComboBox
而不是 String
.
可能的更正:声明 JComboBox 以保存 ComboBox
:
private JComboBox<ComboBox> combobox;
只需将代码属性中的类型参数更改为 ComboBox
或将放入 .addItem
方法中的任何 class 名称