我得到“线程中的异常“AWT-EventQueue-0”java.lang.ArrayIndexOutOfBoundsException:0,我真的不明白为什么。
我有这两个内部类,用作 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 按下或鼠标单击