본문 바로가기
Java/Java 기초문법

[JAVA 기초] 자바 Swing 클래스와 JOptionPane

by dev수니 2021. 3. 7.
반응형

 

 

 1  JOptionPane

 


 

"Java Swing"에 속한 클래스로서, 대화상자(Dialog)를 쉽고 간단하게 띄울 수 잇는 방법을 제공하는 클래스이다.

따라서 import 해준 후 사용해야 한다.

사용자가 입력한 문자열이 입력값으로 리턴되며, 취소 버튼이 선택되거나 창이 닫히면 null 리턴된다.

 

 

 

주요 메서드 4가지

1) JOptionPane.showInputDialog() : 입력 란이 있는 대화상자를 띄운다. 한 줄 입력(표시)

사용 : JOptionPane.showInputDialog(String msg);

1. String msg : 다이얼로그 메시지
2. 리턴 값 : 사용자가 입력한 문자열이 리턴, 취소 버튼이 선택되거나 창이 닫히면 null이 리턴


2) JOptionPane.showMessageDialog() : 메시지가 있는 대화상자를 띄운다.

사용 : JOptionPane.showMessageDialog(parentComponent, Object msg, String title, int messageType);

1. parentComponent : 다이얼로그의 부모 컴포넌트로서 다이얼로그가 출력되는 영역의 범위 지정을 위해 사용한다. null이면 화면 중앙에 출력.
2. Object msg (다이얼로그 메세지)
3. String title (다이얼로그 타이틀)
4. messageType (다이얼로그의 종류) : ERROR_MESSAGE, INFORMATION_MESSAGE, WARNING_MESSAGE, QUESTION_MESSAGE, PLAIN_MESSAGE

 

 

3) JOptionPane.showConfirmDialog() : (Y/N) 선택이 있는 대화상자를 띄운다.

사용 : JOptionPane.showConfirmDialog(parentComponent, Object msg, String title, int optionType);

1. parentComponent : 다이얼로그의 부모 컴포넌트로서 다이얼로그가 출력되는 영역의 범위 지정을 위해 사용한다. null이면 화면 중앙에 출력.
2. Object msg (다이얼로그 메세지)
3. String title (다이얼로그 타이틀)
4. int optionType (다이얼로그 옵션 종류) : YES_NO_OPTION, YES_NO_CANCEL_OPTION, OK_CANCEL_OPTION
5.리턴값 : 사용자가 선택한 옵션 종류 YES_OPTION, NO_OPTION, CANCEL_OPTION, OK_OPTION, CLOSED_OPTION

 

 

4) JOptionPane.showOptionDialog() : 선택지(option)가 있는 대화상자를 띄운다.

JOptionPane.showOptionDialog(parentComponent , Object msg, String title, int optionType , messageType, icon icon , Object[] options , Object initialValue);

1. parentComponent : 다이얼로그의 부모 컴포넌트로서 다이얼로그가 출력되는 영역의 범위 지정을 위해 사용한다. null이면 화면 중앙에 출력.
2. Object msg (다이얼로그 메세지)
3. String title (다이얼로그 타이틀)
4. int optionType (다이얼로그 옵션 종류) : DEFAULT_OPTION, YES_NO_OPTION, YES_NO_CANCEL_OPTION, or OK_CANCEL_OPTION
5. messageType (다이얼로그의 종류) : ERROR_MESSAGE, INFORMATION_MESSAGE, WARNING_MESSAGE, QUESTION_MESSAGE, or PLAIN_MESSAGE
6. icon icon (다이얼로그에 나타낼 아이콘)
7. Object[] options : 예, 아니오, 취소(YES,NO,CANCEL) 버튼에, 다른 문자를 넣는다.. 문자열 배열 3개 짜리로 각 문자열을 지정해줄 경우, YES/NO/CANCEL 대신 지정해둔 문자가 버튼으로 출력된다.
8. Object initialValue : 여러개의 버튼 중 어느 버튼을 초기값으로 선택해 줄 것인지 결정. 확인창이 처음 뜰 때, 점선으로 표시된 기본 커서가 어느 버튼 중 하나에 올라가 있는데 그 위치를 정해준다.

 

 

 

 

 


 

 

 2  다음은 JOptionPane를 이용한 예제이다.

 

 

1. JOptionPane.showInputDialog() 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package java_practice;
 
import javax.swing.JOptionPane;
 
public class JOption {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String name = JOptionPane.showInputDialog("이름?");  // "YG입력"
        System.out.println("이름은 " + name);
        
        if(name==null) {
            System.out.println("이름을 입력하지 않았습니다.");
        }
        
//        문자열 --> 정수 : Integer.parseInt("19") --> 19    
        
        String s = JOptionPane.showInputDialog("나이는?");    // "19입력"
        int age = Integer.parseInt(s);                        // "19"-->19 (문자열을 정수로)
        System.out.println("나이는 " + age);
    }
}
cs

출력결과

이름은 YG
나이는 19

다음과 같은 대화상자가 뜬다.

 

 tip 문자열을 정수로 바꾸는 방법 (Interger.parseInt();)

String s = 12345;            // "12345"

int num = Integer.parseInt(s); // 12345

 

 

 

 

 

 

 

 

2. JOptionPane.showMessageDialog() , JOptionPane.showConfirmDialog()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package java_practice;
 
import javax.swing.JOptionPane;
 
public class JOption_Ex {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        int result = JOptionPane.showConfirmDialog(null"계속하시겠습니까?""확인", JOptionPane.YES_NO_CANCEL_OPTION);
        if (result==JOptionPane.YES_OPTION) { // 예를 눌렀을 경우
            JOptionPane.showMessageDialog(null"다음으로 넘어갑니다.");
        }
        else if(result==JOptionPane.NO_OPTION) { // 아니오를 눌렀을 경우
            JOptionPane.showMessageDialog(null"이전으로 돌아갑니다.");
        }
        else {    // JOptionPane.CANCEL_OPTION, JOptionPane.CLOSED_OPTION
            JOptionPane.showMessageDialog(null"취소하시겠습니까?"); //사용자가 취소를 누르거나 창을 닫은경우
        }
    }
 
}
cs
 
 
사용자가 선택한 옵션을 result에 저장시키고 그 값을 if문을 이용해 작업을 수행하였다.
 
JOptionPane.CANCEL_OPTION, JOptionPane.CLOSED_OPTION은 각각 사용자가 취소를 누른 경우와 창닫기를 한 경우이다.
 
 
 
 
 
 
 
 

1. JOptionPane.showInputDialog() 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package java_practice;
 
import javax.swing.JOptionPane;
 
public class JOption_Arr {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
 
        String[] selections = {"첫번째값""두번째값""세번째값"};
        JOptionPane.showInputDialog(null"selectionValues를 이용해서\n선택창으로 만들어봅니다.""제목표시줄", JOptionPane.QUESTION_MESSAGE, null, selections, "두번째값");
 
    }
}
 
cs

 

messageType을 Qustion dialog로 불러왔다.

그다음 Object[] options을 미리 만들어 주었던 배열 selctions로 설정해 주어 셋중 고를 수 있게 하였다.

맨 마지막의 Object initialValue를 "두번째값"으로 지정해 주어 세개의 항목 중 두번째 항목을 초기값으로 선택해 창이 떴을 때 두번째값으로 설정되어있게 하였다.

 

 

반응형

댓글