我不能为我的生活让这个工作,我已经尝试了至少15个小时。这是我的所有代码。请告诉我,当我运行它但是要添加到我的列表模型时,我想要添加到我的JList的项目没有显示我做错了。
这些是我的jlist和defaultlistmodel的声明。
private EventList issuesEventList = new BasicEventList();
public JList lstContacts;
在这下面是我的所有事件监听器没有太多的相关性,然后我的主要功能和我的功能来填充我的JList:
public static void main(String[] args) throws SQLException {
ContactsDB contactsDB = new ContactsDB();
JFrame frame = new JFrame("VirtualRolodex");
frame.setContentPane(new VirtualRolodex().mainPanel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
contactsDB.createContactsTable();
contactsDB.loadContactsList();
}
public void fillList(EventList<String> contactsList){
issuesEventList.clear();
issuesEventList.addAll(contactsList);
DefaultEventListModel issuesListModel = new DefaultEventListModel(issuesEventList);
JList lstContacts = new JList(issuesListModel);
lstContacts.setModel(issuesListModel);
}
这是我的GUI表格的类,然后我还有一个数据库类来处理数据库的写入和读取。
public void loadContactsList() throws SQLException {
ResultSet results;
Statement statement = dbConnection.createStatement();
String query = "SELECT companyName,firstName,lastName FROM contacts;";
contactList.clear();
contactList.add("New Contact");
try {
results = statement.executeQuery(query);
try {
while(results.next())
{
String company = results.getString("companyName");
String first = results.getString("firstName");
String last = results.getString("lastName");
contactList.add(company + ": " + last + ", " + first);
}
fillList(contactList);
} catch(SQLException e){
System.err.println("Trouble accessing iterating through "+
"results in UsersDB.getAllUsers.");
throw e;
} finally {
results.close();
}
} catch(SQLException e){
System.err.println("Trouble accessing getting results in "+
"ContactsDB.loadContactsList()");
throw e;
} finally {
statement.close();
}
}
这是该类的代码,用于加载一个包含我想要在JList中的联系人基本信息的事件列表。
请告诉我这里做错了什么。所有信息都传递回主类,但JList中没有显示任何内容。我也使用Intellij,它具有内置的GUI构建器,因此所有内容都已在GUI中设置。