안녕하세요.


이번 시간에는 입력상자를 만들어보겠습니다. 흔히들 '인풋박스'라고 하는 건데요.





이처럼 사용자의 입력을 받는 상자죠. 자바에서의 정식 명칭은 '인풋 다이얼로그'이지만 편의상 '인풋박스'라고 하겠습니다.




1
2
3
4
5
6
7
8
9
10
11
12
13
14
package study;
 
import javax.swing.JOptionPane;
 
public class Study01 {
 
    public static void main(String[] args) {
 
        JOptionPane.showInputDialog("숫자를 입력하세요");
        
    }
 
}
 
cs


이런식으로 코딩하시면 되겠습니다. 메세지박스 코딩하는 방법과 유사하니까 별로 어렵지는 않으실겁니다.


JOptionPane.showInputDialog("표시할 내용");


구조는 단순합니다. 이 녀석도 메세지박스처럼 JOptionPane의 한 종류군요.



이제 이걸 응용하여 '인풋박스에 입력한 값에다가 1을 더한 값을 출력하는 프로그램'을 만들어보도록 하죠. 예를 들어 3을 입력하면 메세지박스에 4가 출력되는 거죠.

우선, 사용자가 입력한 값을 변수에 저장할 필요가 있습니다.


자료형 변수 = JOptionPane.showInputDialog("표시할 내용");


이런 방식대로 하면 됩니다.






그런데 에러가 났네요. 빨간 밑줄에 마우스를 갖다대면 이렇게 설명상자가 뜨는데 해석하면 아래와 같습니다.



자료형이 맞지 않음: 문자형을 정수형으로 변환할 수 없습니다.


빠르게 수정할 수 있는 방법이 1개 있음:


num의 자료형을 문자형으로 바꾼다.



'num의 자료형을 문자형으로 바꾼다' 부분을 클릭해보실까요?







int가 String으로 바꼈고 에러표시가 사라졌습니다. 인풋박스에 적은 내용은 문자로 인식되며 문자형 변수에 밖에 저장할 수 없다는 걸 알 수 있죠.

일단 계속 진행해봅시다.




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package study;
 
import javax.swing.JOptionPane;
 
public class Study01 {
 
    public static void main(String[] args) {
 
        String num = JOptionPane.showInputDialog("숫자를 입력하세요");
 
        JOptionPane.showMessageDialog(null, num + 1);
    }
 
}
 
cs


num 변수에 저장된 값에다가 1이 더해진 값이 메세지박스에 출력되도록 했습니다.






실행해서 5를 적어봤습니다.







역시 51이 나오는군요. 숫자를 입력했지만 문자로 인식해서 그렇죠.




자, 그렇다면 이 문제를 어떻게 해결할 수 있을까요? 그렇습니다. '형변환'을 사용하면 되겠죠!


다음시간에는 이번시간에 만든 코드에다가 형변환을 적용시켜서 올바른 값을 출력시켜보겠습니다.


감사합니다.


+ Recent posts