Connection connection = newConnection.createConnection();
Statement newStat = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet res = newStat.executeQuery("SELECT contactName FROM Contact WHERE accountName='"+m+"'");
Vector<String> temp = new Vector<String>();
//res.first();
while (res.next()){
temp.add(res.getString("contactName"));
}
newStat.close();
connection.close();
customerContactList = new JList(temp);
repaint();
我有一个带有帐户名称的Jlist,当选择一个帐户时,旁边有一个按钮,必须按下才能调用上面的代码。 该代码应该获取与该帐户关联的联系人姓名并将其填入 JList。这不会发生。 Jlist保持空白,我调试并且向量temp确实得到3个值并将它们存储到新的jlist中,问题是,JList不刷新。
如何刷新?
非常感谢,感谢您的帮助。 KUNAL
答案 0 :(得分:5)
您创建的新JList尚未添加到任何容器中,因此您必须将其添加到框架中,就像原始框架一样,然后在框架上调用“validate()”(始终是必需的)当您向可见窗口添加/删除组件时。)但最好在现有JList上调用setListData() - 它会立即更新,而不会闪烁。
答案 1 :(得分:1)
您可以使用ListModel来操纵JList
内的数据。绝对不会在任何步骤创建新的JLists
。
您的JList
已绑定到JFrame
。现在您可以使用
JList list = new JList();
ListModel model = list.getModel();
并修改该模型,然后重新发送新模型:
DefaultListModel listModel = new DefaultListModel();
while (res.next()) {
listModel.addElement( res.getString("contactName") );
}
list.setModel(listModel);