Перемещение объекта класса между двумя JLists с selectedIndex - PullRequest
0 голосов
/ 22 апреля 2019

Попытка переместить объекты класса из одного JList в другой JList с помощью SelectedIndex.

Попытался прочитать учебник по Java, но я не могу найти то, что ищу.

В данный момент я попытался отправить JList customerList и получить выбранное значение / индекс и просто добавить его в нужный JList, но только сгенерировав ошибку с массивом и сообщив, что индекс равен-1.

Я попытался сделать это вместо

public void moveToQ1() {

    index = customerList.getSelectedIndex();
    if (index != -1) {

        browsing.dequeue(customerList);
        q1.enqueue(browsing, customerList, queue1, index);

    }
}

Для вызова функции, которая перемещается от просмотра к очереди1

public void enqueue(QueLine queline, JList list1, JList list2, int index) {

    DefaultListModel<Customer> browseModel = (DefaultListModel<Customer>) list1.getModel();
    DefaultListModel<Customer> queueModel = (DefaultListModel<Customer>) list2.getModel();

    int selectedIndex = index;
    System.out.printf("%d\n", selectedIndex);

    if(selectedIndex >= -1) {
        queueModel.addElement(browseModel.getElementAt(selectedIndex));
    }


}

Если у меня есть 3 объекта в browseModel ивыберите второй объект и нажмите кнопку для перемещения.Второй объект будет удален из browseModel, но не будет добавлен в queueModel, но вместо этого третий объект из browseModel будет добавлен в queueModel.

Также, если я пытаюсь переместить последний добавленный объект в browseModel в queueModel, я получаю «ArrayIndexOutofBoundsException»

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

Редактировать: в первом примере кода поменялись местами вызовы enqueue и dequeue, и проблема исчезла.

...