2010-02-24 4 views
1

그래서 학교용 프로그램을 만들고 있는데 과제 중 일부는 입력 팝업창이 나타납니다. JOptionPane을 사용하고 있습니다. JOptionPane에는 본질적으로 OK 버튼과 Cancel 버튼이 있습니다. 이제, 그들은 프롬프트 문자열을 요구하는 경우 취소 눌러 프로그램 종료를 만들기 위해,이 같은 있습니다표준 JOptionPane의 취소 버튼에 관한 질문

firstName = JOptionPane.showInputDialog("Please enter your first name:"); 
if(firstName == null)System.exit(0); 

을하지만 나는 또한, 모두 내가 입력으로 얻을 수에 대한 같은 일을해야 복식과 입술. 같은 것을 시도해 보면 연산자 ==는 인수 유형 double, null에 대해 정의되지 않는다는 오류가 발생합니다. 따라서 숫자 값을 입력하라는 메시지가 표시되면 취소를 클릭하는지 확인하는 가장 좋은 방법은 무엇입니까? 당신의 도움을 주셔서 감사합니다!

startDateMonth = Integer.parseInt(JOptionPane.showInputDialog("Please enter the start   date month (1-12):")); 

답변

3

JOptionPane.showInputDialog() 항상 사용자의 입력 문자열을 반환 :

편집 # 여기에 1

는 JOptionPane에이 수치를 얻기위한 코드입니다. 사용자가 Cancel 버튼을 클릭하면 null을 반환합니다. 사용자 입력을 다른 유형으로 변환하려면 문자열을 구문 분석하십시오. 붙여 넣은 코드는 그대로 유지해야합니다. 다른 것을 요구하는 경우 명확히하십시오.

Petar

+0

안녕하십니까, 제 질문을 다시 읽으신 후 조금 애매합니다. 내 정수 JOptionPane에 대한 코드를 추가했다. 취소하기 위해해야 ​​할 일이 궁금하다. startDateMonth == 뭐라구? 취소하십시오. 감사합니다 – Steve

+0

String startDateMonth = JOptionPane.showInputDialog ("시작일을 입력하십시오 개월 (1-12) :"); if (startDateMonth == null) System.exit (0); int parsed = Integer.parseInt (startDateMonth); 사용자가 취소를 클릭 한 다음 입력을 구문 분석했는지 먼저 확인해야합니다. 희망은 분명하다. –

+0

아, 그런데 이전 스 니펫 코드 Integer.parseInt (JOptionPane.showInputDialog ("시작일을 입력하십시오. 월 (1-12) :")); 사용자가 취소를 클릭하면 항상 널 포인터가 생깁니다. 본질적으로 Integer.parseInt (null)을 호출 할 것이기 때문입니다. –