2016-07-25 5 views
0

Я создал клиентскую систему - серверную комнату для чата, и у меня есть список подключенных в данный момент пользователей, который в настоящее время отображается нажатием кнопки в JTextField, в настоящее время он отлично работает и отображает строку массив. Тем не менее, я добавил еще один компонент в свой графический интерфейс, будучи JList. Я пытаюсь создать метод под названием updateUserList для обновления JList с подключенными пользователями. Я попытался использовать DefaultListModel типа String, однако это ничего не отображает в JList, и я не уверен, почему.Связывание String ArrayList с JList

Ниже метод updateUserList я создал:

public void updateUserList() 
{ 
    model = new DefaultListModel<String>(); 
    for(String usernames : users) 
     model.addElement(usernames); 
    jl_users = new JList<String>(model); 
} 

Обратите внимание, что модель, имена пользователей и jl_users определены глобально, поэтому я не включил их в должности.

+0

Существует не хватает кода. Для начала кажется странным, что ваш ** обновленный ** код создает совершенно новый объект JList. Я бы предпочел, чтобы ваше приложение содержало ** fixed ** JList; и что вы только обновляете модель этого JList. В этом весь смысл подхода к модели: вы не выбрасываете компоненты своего пользовательского интерфейса каждый раз, когда вы что-то обновляете. Другими словами: пожалуйста, обратитесь в центр помощи, чтобы понять, как писать «полезные вопросы о работе», так как вы просто не предоставляете достаточно информации, чтобы мы действительно вам помогли. – GhostCat

+0

Мой код содержит новый объект JList, поскольку я находился под впечатлением, что как добавить элементы в JList. – DaveDavidson

+0

Вы не добавляете новые элементы в список, создавая новый список. Вместо этого вы сначала создаете список, а затем добавляете/удаляете элементы списка. Короче говоря: возможно, вы хотите просто прочитать учебник по этому материалу? https://docs.oracle.com/javase/tutorial/uiswing/components/list.html – GhostCat

ответ

0

Почему вы используете DefaultListModel? Если вы хотите просто список просто использовать его как этот

public void updateUserList() 
{ 
    jl_users = new JList<String>(users.toArray(new String[users.size()])); 
} 

или прямой

jl_users = new JList(users.toArray()); 
Смежные вопросы