728x90
반응형
▶ 프로젝트
https://soheepark.tistory.com/183
[에러 메시지]
java.lang.reflect.InvocationTargetException
Caused by: java.lang.ArrayIndexOutOfBoundsException: 3 >= 3
1. 원인
ArrayIndexOutOfBoundsException은
배열 또는 리스트의 인덱스가 유효한 범위를 벗어났을 때 발생하는 예외이다.
3 >= 3라는 메시지로 보아,
인덱스 3에 접근하려 했는데 리스트의 크기가 3이어서 문제가 발생한 것으로 보인다.
이는 인덱스가 0부터 시작하므로, 인덱스가 0, 1, 2까지만 유효하다.
에러가 발생한 부분은 CouponHistoryView 클래스의 makeTable()이다.
해당 메서드에서 테이블의 컬럼을 설정하는 과정에서 문제가 발생한 것으로 보인다.
2. 코드 분석
public void makeTable() {
String[] tbTitle = { "날짜", "쿠폰 발급수", "쿠폰 사용수"};
//이하 생략
tbMaster.getColumnModel().getColumn(cnt).setPreferredWidth(100); // 날짜
tbMaster.getColumnModel().getColumn(cnt++).setMinWidth(100);
tbMaster.getColumnModel().getColumn(cnt).setPreferredWidth(100); // 쿠폰 발급수
tbMaster.getColumnModel().getColumn(cnt++).setMinWidth(100);
tbMaster.getColumnModel().getColumn(cnt).setPreferredWidth(150); // 쿠폰 사용수
tbMaster.getColumnModel().getColumn(cnt++).setMinWidth(150);
tbMaster.getColumnModel().getColumn(cnt).setPreferredWidth(0); // idx
tbMaster.getColumnModel().getColumn(cnt).setMinWidth(0); // idx
tbMaster.getColumnModel().getColumn(cnt).setMaxWidth(0); // idx
}
tbTitle 배열에는 3개의 열 제목의 정의되어 있다.
그러나 열 설정을 할 때 4번째 열 'idx'에 대한 설정이 있다.
이 부분이 문제의 원인이었다.
내가 tbTitle 배열에 'idx'를 맨 마지막에 작성하는 것을 잊어버린 실수를 한 것이었다.
3. 에러 해결
public void makeTable() {
String[] tbTitle = { "날짜"
, "쿠폰 발급수"
, "쿠폰 사용수"
, "idx" //추가
};
}
tbTitle에 idx를 추가했더니 에러가 사라졌다.
728x90
반응형
'[Project] > 업무일지' 카테고리의 다른 글
[XML/SQL/Oracle] SQLSyntaxErrorException: ORA-00911: invalid character (0) | 2024.07.11 |
---|---|
[XML/SQL/Oracle] SQLSyntaxErrorException: ORA-02000: missing WITHIN keyword (0) | 2024.07.10 |
[Java, Java Swing/신규 개발] 쿠폰 발급 및 사용 내역 조회 (1) | 2024.07.10 |
NestedSQLException, ProbeException (0) | 2024.07.04 |
java.text.ParseException: Unparseable date, SQLSyntaxErrorException: ORA-00947 (0) | 2024.07.03 |