java - 更新 JList

标签 java swing

我现在制作了一个基于数组列表的 JList,并由默认列表模型填充。列表会在连接到服务器时添加人,但不会显示连接的人或之后连接的人。所以,我必须更新 JList。

我的问题是:

我应该更新什么?是否可以使用运行更新的计时器,或者我应该实现一个在有人进入服务器时运行的更新方法?

附言。这是一个聊天服务器,很像 IRC。

部分代码如下:

GUI:

jList2 = new javax.swing.JList();
try{
jList2.setModel(gl.getUsersOnlineAsDefaultListModel(gl.getClients())
    );
}catch(RemoteException ex){
    System.out.println(ex);
}
jScrollPane3.setViewportView(jList2);

GUI 逻辑:

public DefaultListModel getUsersOnlineAsDefaultListModel(ArrayList<Client> clients) throws RemoteException {
DefaultListModel result = new DefaultListModel();
for(Client c : clients){
    result.addElement(c.findName());
}
    return result;
}

    public ArrayList<Client> getClients() throws RemoteException, NullPointerException{
            return cf.getClients();
    }

服务器端:

ArrayList clients = new ArrayList<Client>();

public ArrayList<Client> getClients(){
    return clients;          
}

最佳答案

我认为最好的方法是实现一个监听器,该监听器由客户端进入更新 JList 的服务器的事件触发。

关于java - 更新 JList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8897205/

相关文章:

java - 何时使用 JFrame、JLabel 和 JPanel

java - 使用 JPanel 的 JFrame 布局

java - 我无法在我的 java 项目中检测到点击计数 = 2(双击)

java - 使用 twitter4j 的问题

java - 使用 REST 身份验证的 Keycloak id_token 为空

java - 查询从 "UTF-8"world读取字节到Java "char"

java - 你如何在 slf4j 中格式化异常?

java - 调试时不关闭数据库连接有问题吗?

java - 将 JPanel 转换为图像

java - 如何在 Swing 中使用 GridLayout?