2014-09-18 2 views
-1

저는 Swing Application으로 작업하고 있습니다. 그리고 하나의 응용 프로그램에서 windowclosing 이벤트에 몇 가지 코드를 넣을 때.JoptionPane Gettting Yes Option I조차 Enter를 누르십시오. No

try { 
    int dialog = JOptionPane.showConfirmDialog(
     null, 
     "are you sure?", 
     "Warning", 
     JOptionPane.YES_NO_OPTION, 
     JOptionPane.QUESTION_MESSAGE 
    ); 
    if (dialog == JOptionPane.YES_OPTION) { 
     System.out.println("Close system."); 
     System.exit(0); 
    } else if (dialog == JOptionPane.NO_OPTION) { 
     System.out.println("do not Close system."); 
    } 
} catch (Exception ex) { 
    ex.printStackTrace(); 
} 

그리고 저는 공백으로 동일한 옵션을 제공하므로 공백이 없어 작동합니다. 그러나 내가 입력 할 때 같은 일을하려고했을 때. 그 모든 시간을 네 옵션을 취하는 경우에도 나는 그 옵션을 취하는 옵션을 가지고 네, 그래서 그 창이 닫힙니다.

그래서 어떻게 방지 할 수 있습니까? 내가 뭘하고 싶니? See this image

+2

더 나은 도움을 받으려면 [MCVE] (http://stackoverflow.com/help/mcve) (최소한의 완전하고 검증 가능한 예)를 게시하십시오. –

+0

okey 방금 스크린 샷을 찍고 있습니다. :) –

+0

@AndrewThompson 이제 초점을 맞추지 않고 Enter 키를 누른 다음 기본적으로 Yes를 눌러 이미지를 볼 수 있습니다. 그게 문제 야. –

답변

3

Enter 키와 스페이스 키의 GUI 동작입니다. OK가 OK와 더 관련되어 있기 때문에 OK_CANCEL_OPTION을 사용할 수 있으며 "취소"에 대해 Enter를 사용하지 못할 수 있습니다.

+0

ans을 주셔서 감사합니다 :) 그리고 만약 내가 잘못 아니란 말은 그게 외형에 달려 있다고 말하는거야? –

+0

Windows에서 Nimbus를 사용하거나 사용하지 않고 사용해 보았습니다. Enter가 기본 버튼에 고정되어 있습니다. –

+0

okey 형님, 가지고 있어요. 그리고 나는 내가 사실 일 수 없다고 말할 수 없다. 왜냐하면 논리적으로 말이 무슨 말인지. :) 나는 그것을 막을 수있는 방법이 있습니까? –

관련 문제