即時得到「異常線程‘AWT-EventQueue的 - 0’java.lang.ArrayIndexOutOfBoundsException:0 ,我真的不明白爲什麼刪除的MouseListener產生ArrayIndexOutOfBoundsException異常
我有我的聽衆用這兩個內部類對於一個JPanel稱爲bildYta
:
private class NyPlatsLyss implements ActionListener{
public void actionPerformed(ActionEvent e){
bildYta.setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
bildYta.addMouseListener(new BildYtaLyss());
bildYta.addKeyListener(new EscLyss());
bildYta.requestFocusInWindow();
enableOperations(false);
}
}
private class EscLyss extends KeyAdapter{
public void keyPressed(KeyEvent e){
if(e.getKeyCode()==KeyEvent.VK_ESCAPE){
bildYta.setCursor(Cursor.getDefaultCursor());
bildYta.removeMouseListener(bildYta.getMouseListeners()[0]);
bildYta.removeKeyListener(this);
enableOperations(true);
}
}
}
當我按下一個按鈕,它增加了兩個位聽衆bildYta
我不明白的是爲什麼我得到.ArrayIndexOutOfBoundsException:0,當我刪除,我只是添加了鼠標監聽有時我甚至沒有獲得除外離子,有時候我會。其餘代碼中的任何內容都不會引起任何麻煩,因爲在添加這些監聽器之後,我的程序中應該沒有其他任何事情發生。它等待任何一個和ESC按下或點擊鼠標
爲更好地幫助越早用[SSCCE(http://sscce.org/),相信有可能是編輯您的問題移除代碼/是/是另一個問題( s),但成爲鼠標事件後觸發 – mKorbel 2012-04-18 09:20:19