2013-03-23 2 views
0

기본적으로 대화 상자를 표시하고 사용자가 2 명에서 4 명이 선택할 수있는 코드가 있습니다. 그것은 잘 작동하지만 '확인'버튼과 '취소'버튼을 제어 할 수 있기를 원하지만 액세스 방법을 알 수는 없습니다. '확인'버튼을 클릭하면 메서드를 호출하고 취소를 클릭하면 프로그램 (System.exit (0))이 종료됩니다. 또한 사용자가 대화 상자의 상단 모서리에있는 'x'를 클릭하면 어떻게 확인합니까?Java GUI showInputDialog의 버튼 액세스

public void numPlayersDialog() 
{ 
    Object[] possibilities = {"Two Players", "Three Players", "Four Players"}; 
    String s = (String)JOptionPane.showInputDialog(
        null, 
        "Enter the number of Players\n", 
        "Initial Dialog", 
        JOptionPane.PLAIN_MESSAGE, 
        null, 
        possibilities, 
        "Two Players"); 


     if(s.equals("Two Players")) 
     { 
      setNumOfPlayers(2); 
     } 
     else if (s.equals("Three Players")) 
     { 
      setNumOfPlayers(3); 
     } 
     else 
     { 
      setNumOfPlayers(4); 
     } 
} 

은 정말 어떤 도움을 주시면 감사하겠습니다 자바의 GUI 물건에 비교적 새로운 해요. 감사합니다

다음

답변

0

javadoc의 말씀입니다 :

결과 :

사용자의 입력, 또는 사용자가

그래서 입력을 취소 null의 의미 반환 값이 null 인 경우, 그것을 사용자가 취소를 클릭하거나 대화 상자를 닫은 것을 의미합니다. 결과가 널이 아닌 경우, 사용자가 확인을 눌렀 음을 의미합니다.

+0

내가 그러나 아직도 나는 '확인'을 클릭했을 때 발생하는 일을 제어 할 수있는 방법을 설명하지 않습니다, 그 전체 페이지를 읽을 것을 놓친 확실하지. –

+0

OK를 클릭하면 showInputDialog 다음의 코드가 실행됩니다. 따라서 반환되는 값을 확인하고 그에 따라 진행하면됩니다. –

0

당신은 그렇게 할 수 있습니다

if (s == null) {/////////////mean you click on the Cancel button 
     System.exit(0); 
    } else {////////////mean you click on OK button 

     if (s.equals("Two Players")) { 
      setNumOfPlayers(2); 
     } else if (s.equals("Three Players")) { 
      setNumOfPlayers(3); 
     } else { 
      setNumOfPlayers(4); 
     } 
    } 
+0

Thankyou, 나는 내가 지금 그것을 깨닫지 못했다고 약간 어리 석을 느낀다 :/ –

+0

괜찮아 :) 당신은 환영합니다 :) –