当我尝试通过索引访问或删除DefaultListModel元素时出现IndexOutOfBoundsException吗?

时间:2019-12-28 20:39:49

标签: java swing jlist

这是代码

private void jList2MouseClicked(java.awt.event.MouseEvent evt) {                                    
    JList list = (JList)evt.getSource();
    if (evt.getClickCount() == 2) {

        // Double-click detected
        int index = list.locationToIndex(evt.getPoint());

        System.out.println("index  :" + index);

        System.out.println(a.getElementAt(index));

        a.removeElementAt(index);
        jList2.setModel(a);
    }
}

我在这里要做的只是从我设置了DefaultListModel的{​​{1}}( a )( jList2 < / em>),只需在要删除的JList元素上单击两次即可。

我对代码进行了一些测试,以找出具有3个元素的jList2的问题所在。我在a的第二个元素上单击了两次(每个元素都会发生问题),出现的内容是:

jList2

问题似乎出在index :1 element 2 Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 17, Size: 17

(顺便说一句,当我尝试添加而不是删除时,这种双击方法有效)

还有其他方法吗?

0 个答案:

没有答案