我现在制作了一个基于数组列表的 JList,并由 defaultlistmodel 填充。该列表会在连接到服务器时添加人员,但不会显示连接的人员或之后连接的人员。所以,我必须更新 JList。
我的问题是:
我应该更新什么?是否可以使用运行更新的计时器,或者我应该实现一个在有人进入服务器时运行的更新方法?
附:这是一个聊天服务器,很像 IRC。
这是一些代码:
The GUI:
jList2 = new javax.swing.JList();
try{
jList2.setModel(gl.getUsersOnlineAsDefaultListModel(gl.getClients())
);
}catch(RemoteException ex){
System.out.println(ex);
}
jScrollPane3.setViewportView(jList2);
图形用户界面逻辑:
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 的服务器的事件触发。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)