본문 바로가기
Study/JAVA

JAVA SWING JOptionPane showConfirmDialog

by Answer Choi 2015. 2. 12.
반응형



 

JOptionPane.ZIP

 

이번시간에는 JOptionPane 2번째로  showConfirmDialog 에 대해 알아보겠습니다.

 

showConfirmDialog도 이전시간에 포스팅했던 showMessageDialog 와 비슷하지만, 

 

이름에도 있듯이 showConfirmDialog는 Confirm!! 즉 확인을 요합니다.

 

이전 포스팅가기(showMessageDialog)

 

showMessageDialog에도 확인버튼은 있었지만, 이건 좀 더 다양하게 구현할 수 있는 메소드 입니다.

 

일단 'showConfirmDialog' 는 4가지 옵션이 있습니다.

 

  • DEFAULT_OPTION
  • YES_NO_OPTION
  • YES_NO_CANCEL_OPTION
  • OK_CANCEL_OPTION

 

 

그래서 이 4가지를 모두 샘플 코드로 만들어서 테스트 해 보겠습니다.

 

이전 showMessageDialog 코드에 추가하여 만들겠습니다.

 

레이아웃 디자인을 보시면 아래와 같습니다.

 

 

왼쪽편이 기존의 showMessageDialog 의 테스트를 위한 것. 

 

오른편이 새로 추가된 showConfirmDialog 의 테스트를 위한 것 입니다..

 

나머지 2가지 메소드도 여기다 추가할께요^^

 

자 그럼 소스로 가볼께요.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
@Override
public void actionPerformed(ActionEvent e) {
    //showMessageDialog
    if(e.getSource()==btnErrMsg){
        JOptionPane. showMessageDialog(null,"THIS IS ERROR MESSAGE","ERROR TITLE",JOptionPane.ERROR_MESSAGE);
    }else if(e.getSource()==btnInfoMsg){
        JOptionPane.showMessageDialog(null,"THIS IS INFORMATION MESSAGE","INFORMATION TITLE",JOptionPane.INFORMATION_MESSAGE);
    }else if(e.getSource()==btnWarningMsg){
        JOptionPane.showMessageDialog(null,"THIS IS WARNING MESSAGE","WARNING TITLE",JOptionPane.WARNING_MESSAGE);
    }else if(e.getSource()==btnQuestionMsg){
        JOptionPane.showMessageDialog(null,"THIS IS QUESTION MESSAGE","QUESTION TITLE",JOptionPane.QUESTION_MESSAGE);
    }else if(e.getSource()==btnPlainMsg){
        JOptionPane.showMessageDialog(null,"THIS IS PLAIN MESSAGE","PLAIN TITLE",JOptionPane.PLAIN_MESSAGE);
    }
       
    //showconfirmDialog
    else if(e.getSource()==btnDefaultoption){
        JOptionPane.showConfirmDialog(null,"THIS IS DEFAULT OPTION","DEFAULT TITLE",JOptionPane.DEFAULT_OPTION);
         
    }else if(e.getSource()==btnYesnooption){
        JOptionPane.showConfirmDialog(null,"THIS IS YES_NO OPTION","YES_NO TITLE",JOptionPane.YES_NO_OPTION);
    }else if(e.getSource()==btnYesnocanceloption){
        JOptionPane.showConfirmDialog(null,"THIS IS YES_NO_CANCEL OPTION","YES_NO_CANCEL TITLE",JOptionPane.YES_NO_CANCEL_OPTION);
    }else if(e.getSource()==btnOkcanceloption){
        JOptionPane.showConfirmDialog(null,"THIS IS OK_CANCEL OPTION","OK_CANCEL TITLE",JOptionPane.OK_CANCEL_OPTION);
    }
    //showconfirmDialog
}
cs

Line 16~27 : 이부분이 showConfirmDialog 를 위해서 추가된 부분입니다.

 

메소드 파라메터를 잠깐 설명하고 넘어갈께요.

 

JOptionPane.showConfirmDialog(Component arg0, Object arg1, String arg2, int arg3)

 

Component arg0 : 이 부분은 앞에서도 봤지만 다이얼로그의 위치인데 null로 해주시면 무난합니다.

 

Object arg1 : 이 부분도 앞에서와 같이 메세지 부분

 

String arg2 : 요기도 타이틀

 

int arg3 : 자 여기가 달라졌는데요. showMessageDialog는 이부분이 아이콘이었는데, 

 

showConfirmDialog는 dialog 옵션입니다.

 

Line 18, 21, 23, 25 를 보시면 옵션부분만 다른걸 확인할 수 있어요.

 

우선 눌러보겠습니다.

 

DEFAULT_OPTION

 

 

 

YES_NO_OPTION

 

 

YES_NO_CANCEL_OPTION

 

 

 

OK_CANCEL_OPTION

 

차이점이 보이시나요??

 

네~사용자가 선택할 수 있는 버튼에서 차이가 납니다.

 

그리고 한가지 더!!

 

아이콘이 모두 QUESTION_MESSAGE 인걸 보실 수 있죠?

 

아이콘이 맘에 안든다 그러면 수정할 수 있습니다.

 

아이콘용 파라메터를 하나 더 제공하는데요. 

 

마지막에 아이콘을 넣어주시면 됩니다.

 

WARNING_MESSAGE 아이콘을 넣어볼께요.


1
JOptionPane.showConfirmDialog(null,"THIS IS DEFAULT OPTION","DEFAULT TITLE",JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_MESSAGE);
cs


그리고 클릭하면...

 

 

아이콘이 바뀐걸 확인할 수 있습니다.

 

그리고 또 다른 의문점이 있죠?

 

바로 우리가 물음에 선택을 했는데, 선택에 따른 코드가 달라져야 겠죠?

 

그 해답은 .....

 

바로 메소드에 있습니다.

 

showConfirmDialog 메소드는 integer 형으로 우리가 선택한 버튼값을 넘겨줍니다.

 

아래와 같이 코딩을 하시면~


1
2
3
4
5
6
int choose=JOptionPane.showConfirmDialog(null,"THIS IS YES_NO OPTION","YES_NO TITLE",JOptionPane.YES_NO_OPTION);
if(choose==JOptionPane.YES_OPTION){
    JOptionPane.showMessageDialog(null,"You are choose YES!!");
}else if(choose==JOptionPane.NO_OPTION){
    JOptionPane.showMessageDialog(null,"You are choose NO!!");
}
cs


YES_NO_OPTION을 클릭하면 물어보겠죠?

 

'예'로 응답하셨으면~

 

 

'아니오'로 응답하시면~

 

 

이렇게 코딩한데로 나오는 걸 보실 수 있습니다.

 

알아보니 참 쉽죠?ㅎ

 

다음 시간에 다음 메소드로 포스팅하겠습니다.^^

 

반응형

'Study > JAVA' 카테고리의 다른 글

JAVA SWING JScrollPane  (0) 2015.02.12
JAVA SWING JOptionPane showInputDialog 와 showOptionDialog  (0) 2015.02.12
JAVA SWING JOptionPane showMessageDialog  (2) 2015.02.12
JAVA SWING JCheckBox  (0) 2015.02.12
JAVA SWING JButton  (0) 2015.02.12

인기글