javax.swing.JOptionPane
JOptionPane은 사용자에게 값을 묻거나 정보를 알려주는 표준 대화 상자를 쉽게 팝업 해서 이용할 수 있게 해 줍니다.
이 클래스는 메소드 수가 많아서 복잡해 보일 수 있겠지만 메소드를 다음과 같이 크게 4가지로 분류할 수 있기 때문에 익혀두면 사용하기 쉽습니다.
- showMessageDialog
- showConfirmDialog
- showInputDialog
- showOptionDilog
1. showMessageDialog
showMessageDialog는 단순한 정보를 알려주는 대화 상자를 팝업 시켜주고, 메소드는 다음과 같다.
JOptionPane.showMessageDialog(parentComponent, message, title, messageType);
parentComponent : 주로 null값이 들어간다. 부모 컴포넌트를 지정해서 팝업 활성화를 제어할 수 있다.
message : 팝업 상자에 표시될 내용이다.
title : 팝업 상자에 표시될 타이틀이다.
messageType : 팝업 상자에 기본으로 정할 수 있는 아이콘을 지정할 수 있다.
메시지 타입으론 5가지가 있다.
1) ERROR_MESSAGE
2) INFORMATION_MESSAGE
3) QUESTION_MESSAGE
4) WARNING_MESSAGE
5) PLAIN_MESSAGE는 아무 아이콘도 표시되지 않는다.
JOptionPane.showMessageDialog(null, "표시될메세지입니다.", "타이틀내용입니다.", JOptionPane.PLAIN_MESSAGE);
위와 같이 입력 시 결과는 다음과 같다.
2. showConfirmDialog
showConfirmDialog는 정보와 함께 선택지를 옵션으로 같이 제공하는 대화 상자를 팝업 시켜줍니다.
JOptionPane.showConfirmDialog(parentComponent, message, title, optionType, messageType);
parentComponent : 주로 null값이 들어간다. 부모 컴포넌트를 지정해서 팝업 활성화를 제어할 수 있다.
message : 팝업 상자에 표시될 내용이다.
title : 팝업 상자에 표시될 타이틀이다.
messageType : 팝업 상자에 기본으로 정할 수 있는 아이콘을 지정할 수 있다.
OptionType : 팝업 상자에서 고를 수 있는 옵션의 종류를 지정할 수 있다.
옵션 타입으론 4가지가 있다.
1) DEFAULT_OPTION
2) OK_CANCEL_OPTION
3) YES_NO_OPTION
4) YES_NO_CANCEL_OPTION
옵션을 선택하면 정수를 리턴한다. 각 옵션에 따라 리턴되는 값은 다음과 같다.
OK == 0
YES == 0
NO == 1
CANCEL == 2
X(팝업 종료) == -1
int var = JOptionPane.showConfirmDialog(null, "내용", "타이틀", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE, null);
위와 같이 입력 시 결과는 다음과 같다.
3. showInputDialog
showInputDialog는 사용자에게 직접 입력을 받아 올 수 있고 형태는 두 가지가 있습니다.
1) 키보드 입력을 직접 받는 형태
이 형태의 메소드는 다음과 같습니다.
① JOptionPane.showInputDialog(parentComponent, message, initialMessage);
parentComponent : 주로 null값이 들어간다. 부모 컴포넌트를 지정해서 팝업 활성화를 제어할 수 있다.
message : 팝업 상자에 표시될 내용이다.
initialmessage : 팝업 상자 입력창에 기본적으로 적어 놓을 내용이다.
② JOptionPane.showInputDialog(parentComponent, message, title, messageType);
parentComponent : 주로 null값이 들어간다. 부모 컴포넌트를 지정해서 팝업 활성화를 제어할 수 있다.
message : 팝업 상자에 표시될 내용이다.
title : 팝업 상자에 표시될 타이틀이다.
messageType : 팝업 상자에 기본으로 정할 수 있는 아이콘을 지정할 수 있다.
입력값을 입력하고 OK를 누르면 입력한 그대로 문자열을 전달할 수 있다.
String input = JOptionPane.showInputDialog(null, "내용", "임시입력값");
위와 같이 입력 시 결과는 다음과 같다.
2) 옵션을 정해 입력받는 형태
이 형태의 메소드는 다음과 같습니다.
JOptionPane.showInputDialog(parentComponent, message, title, messageType, icon, value[], initialValue);
parentComponent : 주로 null값이 들어간다. 부모 컴포넌트를 지정해서 팝업 활성화를 제어할 수 있다.
message : 팝업 상자에 표시될 내용이다.
title : 팝업 상자에 표시될 타이틀이다.
messageType : 팝업 상자에 기본으로 정할 수 있는 아이콘을 지정할 수 있다.
icon : 아이콘 이미지를 직접 지정할 수 있다.
vlaue[] : 직접 정해줄 옵션의 배열을 지정한다.
initialValue : 정해준 옵션에서 기본적으로 표시하고 있을 내용이다.
옵션을 정하고 OK를 누르면 옵션의 내용을 Object형으로 전달하기 때문에 아래와 같이 문자열로 형 변화할 필요가 있다.
String[] peoples = {"kim","jung","choi"};
String name = (String) JOptionPane.showInputDialog(null, "내용", "타이틀", JOptionPane.WARNING_MESSAGE, null, peoples, peoples[1]);
위와 같이 입력 시 결과는 다음과 같다.
4. showOptionDialog
showOptionDialog는 직접 정의한 옵션을 모두 보여주며 입력을 받을 수 있는 대화 상자를 팝업 시켜줍니다.
JOptionPane.showInputDialog(parentComponent, message, title, optionType, messageType, icon, value[], initialValue);
parentComponent : 주로 null값이 들어간다. 부모 컴포넌트를 지정해서 팝업 활성화를 제어할 수 있다.
message : 팝업 상자에 표시될 내용이다.
title : 팝업 상자에 표시될 타이틀이다.
OptionType : 팝업 상자에서 고를 수 있는 옵션의 종류를 지정할 수 있다.
messageType : 팝업 상자에 기본으로 정할 수 있는 아이콘을 지정할 수 있다.
icon : 아이콘 이미지를 직접 지정할 수 있다.
vlaue[] : 직접 정해줄 옵션의 배열을 지정한다.
initialValue : 정해준 옵션에서 기본적으로 표시하고 있을 내용이다.
옵션을 선택하면 옵션의 순서에 맞는 정수(배열 인덱스)를 전달한다.
String[] iphone = {"아이폰12 mini","아이폰12","아이폰12 pro", "아이폰12 pro max"};
int choice = JOptionPane.showOptionDialog(null, "내용", "타이틀", 0, 0, null, iphone, iphone[3]);
위와 같이 입력 시 결과는 다음과 같다.
댓글