임지고 "예외 스레드에서"AWT-EventQueue의-0 "java.lang.ArrayIndexOutOfBoundsException :. 0 내가 정말 이유를 이해 해달라고이는 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 키 또는 마우스 클릭을 기다립니다.
에서 제거하는 코드입니다됩니다 서라운드 s). 그러나 마우스 이벤트가 발생했을 때 – mKorbel