我有一个名为CM的Client_manager返回一个arrayList。
public class Client_Manager {
private static Client_Manager self = null;
private ArrayList<Client_Thread> clientList;
public Client_Manager() {
self = this;
this.clientList = new ArrayList<>();
}
public static Client_Manager getInstance()
{
if(self == null)
self = new Client_Manager();
return self;
}
public void addClientThread(Client_Thread client)
{
this.clientList.add(client);
}
public Client getClientAt(int index)
{
return this.clientList.get(index).getOwner();
}
public void removeClient(int index)
{
this.clientList.remove(index);
}
public ArrayList<Client> getClientList() {
ArrayList<Client> ar = new ArrayList<>();
for(int count1 = 0; count1 < clientList.size(); count1++)
{
ar.add(clientList.get(count1).getOwner());
}
return ar;
}
}
和Jlist命名为'showClient'。我想要做的是从CM中获取arraylist。(CM.getClientList)以显示在jlist showClient中。此外,我希望每次CM获得新客户时都更新更改。我应该怎么开始?第一次轮换。
需要有人指出我正确的方向文件或例子。 ...
答案 0 :(得分:2)
让https://s3.amazonaws.com/images/FlowerImages/Rose_320.jpg
https://s3.amazonaws.com/images/FlowerImages/Rose_480.jpg
https://s3.amazonaws.com/images/FlowerImages/Rose_1024.jpg
包含ListModel<Client>
,其中每个ClientManager
都会更新。任何具有该模型的监听Client
都会自行更新。可以找到完整的示例here和here。确切的详细信息取决于上下文,但JList
必须在event dispatch thread上更新。如果接收客户端导致不可预测的延迟,请使用worker thread。