Я создал клиентскую систему - серверную комнату для чата, и у меня есть список подключенных в данный момент пользователей, который в настоящее время отображается нажатием кнопки в 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 определены глобально, поэтому я не включил их в должности.
Существует не хватает кода. Для начала кажется странным, что ваш ** обновленный ** код создает совершенно новый объект JList. Я бы предпочел, чтобы ваше приложение содержало ** fixed ** JList; и что вы только обновляете модель этого JList. В этом весь смысл подхода к модели: вы не выбрасываете компоненты своего пользовательского интерфейса каждый раз, когда вы что-то обновляете. Другими словами: пожалуйста, обратитесь в центр помощи, чтобы понять, как писать «полезные вопросы о работе», так как вы просто не предоставляете достаточно информации, чтобы мы действительно вам помогли. – GhostCat
Мой код содержит новый объект JList, поскольку я находился под впечатлением, что как добавить элементы в JList. – DaveDavidson
Вы не добавляете новые элементы в список, создавая новый список. Вместо этого вы сначала создаете список, а затем добавляете/удаляете элементы списка. Короче говоря: возможно, вы хотите просто прочитать учебник по этому материалу? https://docs.oracle.com/javase/tutorial/uiswing/components/list.html – GhostCat