프로젝트/가계부 프로젝트

자바(java)_JOptionDialog if문으로 출력하기

개발..너... 2022. 4. 3. 00:42

▶문제발생

 

Main과 Frame의 클래스는 잘 연결이 되었지만

Frame과 Income, extend가 연결이 안되는 상황 발생

 

[Main 클래스]

 

 

[Frame 클래스]

 

 

[Income 클래스]

 

 

메서드를 가져온 방법엔 문제가 없으나 Systemout.println을 통해 알림창을 이끌어내야한다.

 

▶문제 발생 이유

 

JOptionpane은 결과값이 int로 나온다. 

나는 단순하게 int형과 string형의 비교는 불가능한 줄 알고 JOptionpane의 값을 String으로 변경하였고

if문을 통해 menuMsg(String타입 배열), MenuSelect(String타입함수)를 비교하려고만 하였다.

 

내가 간과한 것은 값이 출력되었을 때 어떤 형태로 나오냐는 것이다.

 

JOptionpane은 출력이 되면 값이 int형으로 0,1,2 라는 숫자 값으로 출력이 된다.

그래서 JOptionpane을 String으로 변경하면 "수입입력" == "1", "지출입력" == "2"로 나옴으로 계속된 false로 인해 if문에 들어가지 못했던 것이다.

 

여기서 결국 중요한 것은 사용자가 JOptionpane의 버튼을 어떤 것을 눌렀는가임으로 JOptionpane이 출력하는 숫자를 비교하는 것으로 코드를 변경하였다.

 

 

▶문제 해결

 

 

 

MenuSelect를 숫자로 비교하여 if문을 타게 하였다.

 

▶다짐

 

-. 다음부턴 오류가 날 경우 "함수의 출력 형태"도 고려하여 생각하기

-. Frame은 Java의 하나의 예약어로서 Class명으로 사용하기 부적합하다고한다. Java에서 주로 사용되는 예약어 정리하여 변수명 혹은 클래스명 작성시 주의하기