반응형

HTML에 자바 스크립트 써보신 분이면 alert("알림메시지"); 기능을 많이 써보셨을 겁니다. VB(비주얼 베이직)에서도 MsgBox 함수로 알림창을 띄울 수 있지요. 자바라고 없겠습니까, 당연히 알림창 기능 있습니다.

그런데 저는 알림창을 띄울 수 있는 클래스가 뭔지 몰라서 한참동안 직접 JDialog로 알림창 비슷한 걸 만들어서 사용했답니다. 왠지 억울한 기분이 들더군요.

※ 자바 스윙(Java Swing, AWT 등)에서 알림창 띄우기
- JOptionPane 1. 종합편

(기타 관련 명칭 : 알림창, 확인창, 대화창, 경고창, 질문창, 메시지창, 메시지박스, MessageBox, MsgBox, Alert창, Confirm Dialog, Message Dialog 등...)

JOptionPane 클래스 하나만 알고 있으면 됩니다. 여기에 윈도우 기본 창들이 많이 들어있습니다.(물론, 파일 열기/닫기에 쓰이는 것은 FileDialog에 있지만요)

이번 강좌 아닌 강좌에 '넷빈즈 IDE(NetBeans IDE)로 하는 자바 프로그래밍'이라는 제목을 달지 않은 이유는, JOptionPane은 IDE 환경에서 사용하든, 메모장 텍스트 박치기로 프로그래밍하든 관계없이 똑같이 한 두 줄로 해결 가능한 것이니까요.

- JOptionPane 클래스 Java API
JOptionPane의 대표적인 정적 메소드 함수(static methods)들로 확인창, 알림창, 질문창 등을 띄울 수 있습니다.

showMessageDialog : 단순 알림창(경고창, 메시지 박스)을 띄웁니다.
showConfirmDialog : 확인창(예/아니오, 확인/취소 등)을 띄웁니다.
showInputDialog : 질문창을 띄웁니다. 간단한 입력 결과를 받습니다.
showOptionDialog : 확인창과 비슷한데, 예/아니오 대신 선택 버튼의 말을 직접 정해줄 수 있습니다.

위에 소개한 세가지 메소드이 자세한 사용법은 각각 따로 글을 작성하겠습니다.
- JOptionPane 2. 알림 메시지 창 띄우기 상세 설정 showMessageDialog
- JOptionPane 3. 확인창 띄우기 상세 설정 showConfirmDialog
- JOptionPane 4. 입력창 띄우기 상세 설정 showInputDialog
- JOptionPane 5. showOptionDialog 마음대로 주무르기

그 외 JOptionPane 클래스에 대한 내용은 JOptionPane Class 자바 API 및 자바 튜토리얼(대화창 띄우는 법)을 참고하시고, 일단 여기서는 간단한 사용법과 예제만 보여드리겠습니다.

우선 JOptionPane 클래스 패키지를 import 해야합니다. 자바 소스 코드 최상단에 다음 import 문을 추가합니다.

import javax.swing.JOptionPane;

본문 중 창을 띄우고 싶은 부분에서 아래 예제를 따라 창을 띄웁니다.

사용자 삽입 이미지

JOptionPane.showMessageDialog(null, "기본 알림창입니다.");

사용자 삽입 이미지

int result = 0;
result = JOptionPane.showConfirmDialog(null, "기본 확인창입니다.");
// (result 리턴값)
// JOptionPane.YES_OPTION, JOptionPane.NO_OPTION,
// JOptionPane.CANCEL_OPTION 등

사용자 삽입 이미지

String resultStr = null;
resultStr = JOptionPane.showInputDialog("기본 입력창입니다.");
// (resultStr 리턴값으로 입력받은 메시지 문자열을 리턴해준다.)

<출처: http://hallang.tistory.com >
반응형

JOptionPane의 확인창 변형 쯤으로 볼 수 있는 showOptionsDialogs(옵션창, 옵션 버튼창)에 대해 자세히 살펴보겠습니다.

※ 옵션창 띄우기 - JOptionPane 5. showOptionDialog

JOptionPane 클래스 패키지를 import 해야합니다. 자바 소스 코드 최상단에 다음 import 문을 추가합니다.

import javax.swing.JOptionPane;


※ showOptionDialog 메소드 함수 형태

- 리턴값(static int) : 사용자의 확인 버튼 선택값을 되돌려줍니다.
CLOSED_OPTION - 종료(X) 버튼으로 창을 닫은 경우. CANCEL / NO와 비슷하게 처리해줘야합니다.
YES_OPTION - 예(YES) 버튼 선택시 리턴값
NO_OPTION - 아니오(NO) 버튼 선택시
CANCEL_OPTION - 취소(CANCEL) 버튼 선택시
OK_OPTION - 확인(OK) 버튼 선택시

- 메소드 함수 형태
showOptionDialog( Component parentComponent, Object message,
String title, int optionType, int messageType, Icon icon,
Object[] options, Object initialValue)


※ 매개변수(파라메터, Parameter) 설명

- Component parentComponent
메시지창 다이얼로그가 어떤 Frame에서 나타나게 될 것인지를 정해주는 변수. null 값이거나 설정해준 값에 Frame이 없다면 기본값 Frame(default Frame)이 지정됩니다. 쉽게 null 로 둬도 될 것 같네요.

- Object message
출력할 Object 클래스형 개체. 주로 문자열 메시지를 출력할 것이므로, 간단하게 그냥 출력할 문자열 자체를 써주면 됩니다. 문자열을 여러줄에 걸쳐서 표현하고 싶다면 newline에 해당하는 escape 문자열(" \n ")을 써주면됩니다.

- String title
메시지창 상단 제목표시줄에 나타낼 알림창 제목입니다.

- int optionType
사용자의 대답 선택 버튼을 어떻게 표현할 것인가 결정합니다. "예", "아니오", "취소" 버튼을 어떤 식으로 배치할 지 결정합니다.
YES_NO_OPTION
YES_NO_CANCEL_OPTION
OK_CANCEL_OPTION

- int messageType
알림창의 메시지 종류를 정해줍니다. 여기서 정해주는 메시지 종류에 따라 자동으로 지정된 아이콘이 표시됩니다.
ERROR_MESSAGE
INFORMATION_MESSAGE
WARNING_MESSAGE
QUESTION_MESSAGE

아이콘 없음 :
PLAIN_MESSAGE

- Icon icon
Icon 클래스를 통해서 직접 정해줄 수도 있습니다. 아이콘 클래스는 제가 잘 모르겠네요 죄송^^ 웬만하면 위 메시지 종류 선택으로 적당히 커버는 될 겁니다. 직접 사용자 아이콘을 정해주려면 Icon 클래스 관련 내용을 공부하셔야 할 거 같네요. null 로 해두면 기본값이 출력됩니다.

- Object[] options
예, 아니오, 취소(YES,NO,CANCEL) 버튼에, 다른 문자를 넣습니다. 문자열 배열 3개 짜리로 각 문자열을 지정해줄 경우, YES/NO/CANCEL 대신 지정해둔 문자가 버튼으로 출력됩니다. 자세한 사용 예제는 아래를 참고하세요.

- Object initialSelectionValue
여러개의 버튼 중 어느 버튼을 초기값으로 선택해 줄 것인지 결정합니다. 확인창이 처음 뜰 때, 보통 점선으로 표시된 기본 커서가 어느 버튼 중 하나에 올라가 있죠. 그 위치를 정해줍니다.

※ 사용 예제

String[] buttons = {"첫번째값", "두번째값", "세번째값"};
result = JOptionPane.showOptionDialog(null, "options를 이용해서\n버튼을 여러개 만들어봅니다.", "제목표시줄", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, buttons, "두번째값");

실행 결과

실행 결과

<출처:http://hallang.tistory.com/>

+ Recent posts