본문 바로가기
JAVA

[JAVA] JOptionPane 자주쓰는 메소드 사용법

by 요이미야 2021. 3. 21.
728x90
반응형

javax.swing.JOptionPane

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

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

  1. showMessageDialog
  2. showConfirmDialog
  3. showInputDialog
  4. 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);

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

showMessageDialog 사용 예시


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

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

showConfirmDialog 사용 예시


반응형

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

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

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

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

showInputDialog 사용 예시


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

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

showOptionDialog 사용 예시

728x90
반응형

댓글