자바 스윙 팝업 - jaba seuwing pab-eob

javax.swing.JOptionPane

 JOptionPane은 사용자에게 값을 묻거나 정보를 알려주는 표준 대화 상자를 쉽게 팝업 해서 이용할 수 있게 해 줍니다.

 이 클래스는 메소드 수가 많아서 복잡해 보일 수 있겠지만 메소드를 다음과 같이 크게 4가지로 분류할 수 있기 때문에 익혀두면 사용하기 쉽습니다.

  1. showMessageDialog
  2. showConfirmDialog
  3. showInputDialog
  4. showOptionDilog

1. showMessageDialog

자바 스윙 팝업 - jaba seuwing pab-eob
단순히 정보를 알려주는 메세지 상자 팝업

showMessageDialog는 단순한 정보를 알려주는 대화 상자를 팝업 시켜주고, 메소드는 다음과 같다.

JOptionPane.showMessageDialog(parentComponent, message, title, messageType);

parentComponent : 주로 null값이 들어간다. 부모 컴포넌트를 지정해서 팝업 활성화를 제어할 수 있다.

message : 팝업 상자에 표시될 내용이다.

title : 팝업 상자에 표시될 타이틀이다.

messageType : 팝업 상자에 기본으로 정할 수 있는 아이콘을 지정할 수 있다.

메시지 타입으론 5가지가 있다.

자바 스윙 팝업 - jaba seuwing pab-eob

1) ERROR_MESSAGE

자바 스윙 팝업 - jaba seuwing pab-eob

2) INFORMATION_MESSAGE

자바 스윙 팝업 - jaba seuwing pab-eob

3) QUESTION_MESSAGE

자바 스윙 팝업 - jaba seuwing pab-eob

4) WARNING_MESSAGE

5) PLAIN_MESSAGE는 아무 아이콘도 표시되지 않는다.

JOptionPane.showMessageDialog(null, "표시될메세지입니다.", "타이틀내용입니다.", JOptionPane.PLAIN_MESSAGE);

위와 같이 입력 시 결과는 다음과 같다.

자바 스윙 팝업 - jaba seuwing pab-eob
showMessageDialog 사용 예시

2. showConfirmDialog

자바 스윙 팝업 - jaba seuwing pab-eob
선택할 수 있는 옵션을 같이 제공하는 팝업

showConfirmDialog는 정보와 함께 선택지를 옵션으로 같이 제공하는 대화 상자를 팝업 시켜줍니다.

JOptionPane.showConfirmDialog(parentComponent, message, title, optionType, messageType);

parentComponent : 주로 null값이 들어간다. 부모 컴포넌트를 지정해서 팝업 활성화를 제어할 수 있다.

message : 팝업 상자에 표시될 내용이다.

title : 팝업 상자에 표시될 타이틀이다.

messageType : 팝업 상자에 기본으로 정할 수 있는 아이콘을 지정할 수 있다.

OptionType : 팝업 상자에서 고를 수 있는 옵션의 종류를 지정할 수 있다.

옵션 타입으론 4가지가 있다.

1) DEFAULT_OPTION

자바 스윙 팝업 - jaba seuwing pab-eob

2) OK_CANCEL_OPTION

자바 스윙 팝업 - jaba seuwing pab-eob

3) YES_NO_OPTION

자바 스윙 팝업 - jaba seuwing pab-eob

4) YES_NO_CANCEL_OPTION

자바 스윙 팝업 - jaba seuwing pab-eob

옵션을 선택하면 정수를 리턴한다. 각 옵션에 따라 리턴되는 값은 다음과 같다.

OK == 0

YES == 0

NO == 1

CANCEL == 2

X(팝업 종료) == -1

int var = JOptionPane.showConfirmDialog(null, "내용", "타이틀", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE, null);

위와 같이 입력 시 결과는 다음과 같다.

자바 스윙 팝업 - jaba seuwing pab-eob
showConfirmDialog 사용 예시

3. showInputDialog

자바 스윙 팝업 - jaba seuwing pab-eob
입력값을 받을 수 있는 팝업

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, "내용", "임시입력값");

위와 같이 입력 시 결과는 다음과 같다.

자바 스윙 팝업 - jaba seuwing pab-eob
showInputDialog 사용 예시

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]);

위와 같이 입력 시 결과는 다음과 같다.

자바 스윙 팝업 - jaba seuwing pab-eob
자바 스윙 팝업 - jaba seuwing pab-eob
showInputDialog 사용 예시

4. showOptionDialog

자바 스윙 팝업 - jaba seuwing pab-eob
옵션을 통해 입력을 받을 수 있는 팝업

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]);

위와 같이 입력 시 결과는 다음과 같다.

자바 스윙 팝업 - jaba seuwing pab-eob
showOptionDialog 사용 예시