繁体   English   中英

Java-加载Jframe后如何更新JList

[英]Java - How to update JList once Jframe has been loaded

        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不刷新。

如何使它刷新?

非常感谢,感谢您的帮助。 库纳尔

您创建的新JList尚未添加到任何容器中,因此您必须像原始容器一样将其添加到框架中,然后在框架上调用“ validate()”(添加时总是必要的) /将组件移到可见的窗口。)但是最好在现有JList上调用setListData()-它会立即更新,而闪烁的次数较少。

您可以使用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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM