在带有selectedIndex的两个JList之间移动类的对象

时间:2019-04-22 16:26:38

标签: java swing jlist selectedindex defaultlistmodel

尝试将一个类的对象从一个JList移动​​到另一个带有SelectedIndex的JList。

尝试阅读Java教程,但似乎找不到我想要的东西。

此刻,我尝试发送customerList JList并获取所选的值/索引,然后直接将其添加到所需的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));
    }


}

如果我在browserModel中有3个对象,然后选择第二个对象,然后按按钮进行移动。第二个对象将从BrowseModel中删除,但不会添加到queueModel中,而是将BrowseModel中的第三个对象添加到queueModel中。

如果我尝试将最后添加的对象移动到browserModel到queueModel上,也会收到“ ArrayIndexOutofBoundsException”

如果能向我指出要解决的方向,将不胜感激。

编辑:在第一个代码示例中,在入队和出队的调用上切换了位置,问题消失了。

0 个答案:

没有答案