2014-10-06 95 views
-1

如何正確刪除jlist中的元素/項目?因爲我總是遇到這個錯誤。 我無法從Google找到任何解決方案。如何從jlist中刪除元素?

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1 
at java.util.Vector.elementData(Vector.java:734) 
at java.util.Vector.elementAt(Vector.java:477) 
at javax.swing.DefaultListModel.getElementAt(DefaultListModel.java:89) 

型號:DefaultListModel CartModel = new DefaultListModel();

Cart.setModel(CartModel);

JList中:private javax.swing.JList Cart;

沒關係的StringSearch方法。

我的代碼:

private void removeFromCartActionPerformed(java.awt.event.ActionEvent evt) 
{            
    if(!CartModel.isEmpty()) { 
     String selectedText = (String)CartModel.getElementAt(Cart.getSelectedIndex()); 
     StringSearch(selectedText,2); 
     CartModel.removeElementAt(Cart.getSelectedIndex()); 
    } 
} 
+0

爲更好地幫助越早張貼SSCCE/MCVE,短,可運行,可編譯,並在局部變量 – mKorbel 2014-10-06 11:31:28

+0

的消除對JList的hadcoded值不是因爲你可能已經注意到了,然後正確地調試問題 - 調查的對象崩潰:'getElementAt' – Smutje 2014-10-06 11:33:29

+1

據我所知,當沒有元素被選中時返回-1。 – 2014-10-06 11:36:34

回答

1

getSelectedIndex()返回-1當上JList中選擇任何元件。 嘗試檢查是否選擇了元素,然後使用您的邏輯進行處理。

Documentation