Java-加载Jframe后如何更新JList

Java-加载Jframe后如何更新JList,java,vector,refresh,jframe,jlist,Java,Vector,Refresh,Jframe,Jlist,我有一个带有帐户名的Jlist,当选择了一个帐户时,旁边有一个按钮,必须按下该按钮才能调用上面的代码。 该代码应该获取与该帐户关联的联系人姓名,并将其填充到 JList。这种情况不会发生。Jlist保持空白,我调试过,vector temp确实得到了3个值并将它们存储到新的Jlist中,问题是,Jlist没有刷新 我怎样才能使它刷新 非常感谢,非常感谢您的帮助。 Kunal您创建的新JList尚未添加到任何容器中,因此您必须将其添加到框架中,就像原始框架一样,然后在向可见窗口添加/删除组件时始终

我有一个带有帐户名的Jlist,当选择了一个帐户时,旁边有一个按钮,必须按下该按钮才能调用上面的代码。 该代码应该获取与该帐户关联的联系人姓名,并将其填充到 JList。这种情况不会发生。Jlist保持空白,我调试过,vector temp确实得到了3个值并将它们存储到新的Jlist中,问题是,Jlist没有刷新

我怎样才能使它刷新

非常感谢,非常感谢您的帮助。
Kunal

您创建的新JList尚未添加到任何容器中,因此您必须将其添加到框架中,就像原始框架一样,然后在向可见窗口添加/删除组件时始终需要在框架上调用validate。但是最好在现有的JList上调用setListData,它会立即更新,不太闪烁。

您创建的新JList尚未添加到任何容器中,因此您必须将其添加到框架中,就像原始JList一样,然后在向可见窗口添加/删除组件时,调用“始终需要”框架上的“验证”。但是最好在现有的JList上调用setListData,它会立即更新,周围的闪烁更少。

您可以使用ListModel来操作JList中的数据。而且绝对不会在任何步骤创建新的JLists

您已将JList绑定到JFrame。现在,您可以使用

        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 list = new JList();
    ListModel model = list.getModel();

您可以使用ListModel来操作JList中的数据。而且绝对不会在任何步骤创建新的JLists

您已将JList绑定到JFrame。现在,您可以使用

        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 list = new JList();
    ListModel model = list.getModel();

它起作用了!当初始化组件时,我正在为其他部件创建新的jLists,这种方式似乎更有效。谢谢你的帮助Dit有效!当初始化组件时,我正在为其他部件创建新的jLists,这种方式似乎更有效。谢谢你的帮助D