即时得到“异常线程‘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