我创建了一个类来存储两个属性
public class MailEntry {
private String mail;
private MailFormat format; // this is an enum
public MailEntry(String mail, MailFormat format) {
this.mail = mail;
this.format = format;
}
public String getMail() {
return mail;
}
public MailFormat getFormat() {
return format;
}
}
Netbeans GUI 为我创建的 JList 声明为
private javax.swing.JList<String> jList1;
并初始化了一个DefaultListModel
private DefaultListModel<MailEntry> listModel = new DefaultListModel<>();
并将其设置为模型
jList1.setModel(listModel);
但是我得到的是
error: incompatible types: DefaultListModel<MailEntry> cannot be converted to ListModel<String>
jList1.setModel(listModel);
jList 似乎需要一个字符串模型。但我想存储更多特定于项目的信息,这些信息可以通过 GUI 访问。
我该如何解决这个问题?
最佳答案
问题是你已经声明了 jList1
作为...
private javax.swing.JList<String> jList1;
但是您将模型声明为...
DefaultListModel<MailEntry> listModel = new DefaultListModel<>();
MailEntry
和String
不兼容的类和 JList
期待 ListModel<String>
基于模型。
您需要更改 JList
支持您的模型的声明,例如
private javax.swing.JList<MailEntry> jList1;
由于您使用的是 Netbean 的表单编辑器(别让我开始),因此您需要选择 JList
从“导航器”
从“属性”选项卡中选择“代码”选项卡...
并更改Type Parameters
满足您的要求
关于Java Swing DefaultListModel 包含存储更多信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36778809/