JOptionPane 을 이용하면 사용자 입력창, 확인창, 알림창을 만들 수 있습니다. 기본적으로 매개변수는 동일하게 사용할 수 있으며 설명은 다음과 같습니다.

 

매개변수 설 명
Object message 문자열 출력 메시지
Object initialSelectionValue 입력 창에 나타낼 초기 문자열
Component parentComponent 다이얼 로그가 어떤 frame 에 나타나게 될 것인지 정해주는 변수
Ex.) null
String title 제목 표시줄에 나타낼 문자열
int messageType JOptionPane.ERROR_MESSAGE
JOptionPane.INFORMATION_MESSAGE
JOptionPane.WARNING_MESSAGE
JOptionPane.QUESTION_MESSAGE
아이콘 표시 없음: JOptionPane.PLAIN_MESSAGE
Icon icon 기본값: null
Object[] selectionValues 사용자가 직접 입력하는 대신에 셀렉트박스로 보여 줍니다.

 

1-4 사용자 입력창 띄우기

JOptionPane 은 다이얼로그를 띄워 사용자로부터 문자열을 입력받을 수 있습니다. 아래 표의 매개변수 순서는 순차적으로 들어 갑니다.

# 매개변수
showInputDialog( );
  1. Object message
showInputDialog( );
  1. Object message
  2. Object initialSelectionValue
showInputDialog( );
  1. Component parentComponent
  2. Object message
showInputDialog( );
  1. Component parentComponent
  2. Object message
  3. Object initialSelectionValue
showInputDialog( );
  1. Component parentComponent
  2. Object message
  3. String title
  4. int messageType
showInputDialog( );
  1. Component parentComponent
  2. Object message
  3. String title
  4. int messageType
  5. Icon icon
  6. Object[] selectionValues
  7. Object initialSelectionValue


다음 예문은 사용자로부터 100개의 숫자를 입력받고 중간에 -1를 입력하면 종료하는 프로그램입니다.

// ex.1)
import javax.swing.JOptionPane;
 
 
public class InputPannel {
 
    public static void main(String[] args) {
        int[] tmp = new int[100];
         
        for (int i = 0; i < tmp.length; i++) {
            String input = JOptionPane.showInputDialog("1 ~ 100 사이의 숫자를 입력하세요.");
            System.out.println("input = " + input);
             
            if(input.equals("-1")) {
                break;
            }
            tmp[i] = Integer.parseInt(input);
        }
         
        for (int i = 0; i < tmp.length; i++) {
            System.out.println("tmp["+i+"] = " + tmp[i]);
        }
 
    }
 
}


아래는 결과 화면입니다.

 

// ex.2)
import javax.swing.JOptionPane;
 
 
public class Ex01 {
 
    public static void main(String[] args) {
        String[] sel_message = {
                      "첫번째 메시지",
                      "두번째 메시지",
                      "세번째 메시지"
                };
                String input = (String)JOptionPane.showInputDialog(
                      null,
                      "셀렉트박스로 값을 선택하세요.",
                      "제목 표시줄입니다.", 
                      JOptionPane.INFORMATION_MESSAGE,
                      null, 
                      sel_message, 
                      "두번째 메시지"
               );
               System.out.println("input = " + input);
       }
}


아래는 결과 화면입니다.



2-4 사용자 확인창 띄우기

사용자 확인창을 띄우기 위해서는 showConfirmDialog 를 사용합니다. 

// ex.3)
import javax.swing.JOptionPane;
 
public class Ex01 {
    public static void main(String[] args) {
        // 확인 창은 int 형으로 반환하며
        // 0, 1, 2 중 하나입니다.
        int num = JOptionPane.showConfirmDialog(null, "확인합니다.");
        System.out.println(num);
    }
}


아래는 결과 화면입니다. 



3-4 사용자 알림창 띄우기

알림창을 이용하려면 showMessageDialog 를 이용합니다. 아래 표의 매개변수 순서는 순차적으로 들어 갑니다.


# 매개변수
showMessageDialog( );
  1. Component parentComponent
  2. Object message
showMessageDialog( );
  1. Component parentComponent
  2. Object message
  3. String title
  4. int messageType
showMessageDialog( );
  1. Component parentComponent
  2. Object message
  3. String title
  4. int messageType
  5. Icon icon


기본적인 형태는 다음과 같으며 반환 값은 없습니다. 

// ex.4)
import javax.swing.JOptionPane;
 
public class Ex01 {
    public static void main(String[] args) {
        JOptionPane.showMessageDialog(null, "메시지입니다.");
    }
}


아래는 결과 화면입니다.


// ex.5)
import javax.swing.JOptionPane;
 
public class Ex01 {
    public static void main(String[] args) {
        JOptionPane.showMessageDialog(null, "메시지입니다.", "타이틀 제목입니다.", 1);
    }
}



4-4 옵션창 띄우기

옵션창은 사용자가 원하는 선택 버튼을 만들 수 있습니다. 아래 표의 매개변수 순서는 순차적으로 들어 갑니다.


# 매개변수
showOptionDialog( );
  1. Component parentComponent
  2. Object message
  3. String title
  4. int optionType
  5. int messageType
  6. Icon icon
  7. Object[] options
  8. Object initialValue

매개변수 추가 설명:

  • Object[] options
    예, 아니오, 취소 버튼 대신 사용자 정의 버튼 배열을 지정합니다.
  • Object initialSelectionValue
    기본적으로 선택된 값. 확인 창이 처음 뜰 때 점선으로 표시된 값.
// ex.6)
import javax.swing.JOptionPane;
 
public class Ex01 {
    public static void main(String[] args) {
        String[] buttons = {"첫 번째값", "두 번째값", "세 번째값", "네 번째값"};
        int num = JOptionPane.showOptionDialog(null, "사용자 버튼이 여러 개입니다.", "제목 표시줄입니다.",
                JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, buttons, "두 번째값");
 
        System.out.println(num);
    }
}


아래는 결과 화면입니다.


2 댓글