2014-03-25 1 views
0

간단한 예/아니오 대화 상자를 표시하기 위해 JOptionPane을 생성했습니다. 그러나 나는 Yes/no 버튼 출력을 구성하는 방법을 모른다.자바 메시지 상자 구성 방법 버튼

public static void button1(){ 

    //Custom button text 
Object[] options = {"Yes", 
        "No",}; 

int n = JOptionPane.showOptionDialog(frame, 
"Do you want cake? ", 
"Cake", 
JOptionPane.YES_NO_OPTION, 
JOptionPane.QUESTION_MESSAGE, 
null, 
options, 
options[1]); 

} 

원하는 출력 :

JOptionPane box prompt Yes and No button 
if user mouse click ok button display system.out.printf("I Like Cake, Yes") 
otherwise system.out.printf("I dont like cake, no") 

내 현재 코드는 기본 예와 아니오 버튼 JDialog를 메시지를 표시합니다. 현재 의미있는 기능이 없습니다.

내 튜토리얼 참조 : Oracle Java

+1

메시지 상자가 작동하지만 예/아니요를 클릭 한 후 메시지가 표시되지 않음을 의미합니다. ** 또는 ** 뭔가 다른 경우 명확하게 설명하십시오. – Prakash

+1

확인 버튼과 버튼이없는 메시지 상자를 만들고 싶습니다. Ok 버튼은 단순히 "i like cake"문을 출력합니다. 그리고 No 버튼을 위해, "나는 케이크를 좋아하지 않는다". 현재 코드를 확인한 후 또는 아니오 버튼을 클릭하면 종료됩니다. 물어봐 줘서 고마워. –

+1

난 그냥 오라클 튜토리얼에서 자바 메시지 상자를 만드는 방법에 대해 배울 수 있지만 여전히 버튼에 대한 지시를 넣어 명확하지 않다 –

답변

2

사용 showConfirmDialog, intead showOptionDialog

import javax.swing.JOptionPane; 

public class TestDialog { 
    public static void main(String[] args) { 
     int cake = JOptionPane.showConfirmDialog(null, 
      "Do you want Cake?", "Cake", JOptionPane.YES_NO_OPTION); 

     if (cake == JOptionPane.YES_OPTION) { 
      System.out.println("I Like Cake, Yes"); 
     } else if (cake == JOptionPane.NO_OPTION) { 
      System.out.println("I dont like cake, no"); 
     } 
    } 
} 

의는 JOptionPane API를 살펴 보자. 그들은 서로 다른 예제 사용법을 제공합니다 showXxxDialog

+0

예, 대답은 훨씬 더 깔끔하고 구조적입니다. 코드가 답변으로 평가받을 가치가 있습니다. –

+0

@Prakash 누가 OP가 예/아니오 이외의 값을 원한다고 했습니까? –

+0

@peeskillet ooops !! 죄송합니다!!! – Prakash

3

마지막으로이 코드를 함수에 추가하십시오.

if (n == 0) { 
     System.out.println("I Like Cake"); 
    } else if (n == 1) { 
     System.out.println("I dont like cake"); 
    } 
+0

Oh 그래서 실제로 Joptionpane 버튼은 0 또는 1을 반환합니다. 이제 모든 것이 명확합니다. 감사합니다 @Prakash –

+1

Not Joptionpane.It이 클래스입니다.이 값은 메소드 showOptionDialog에 의해 반환됩니다. 반환 된 데이터 유형은 JoInputDialog, showMessageDialog 등의 다른 메소드와 다릅니다. – Prakash

+1

Ok. 나는 그것에 관해 약간의 연구를 할 것이다. –