2013-05-09 3 views
0

나는 텍스트 필드와 버튼이있는 Java 프로그램을 작성하고 있습니다.입력 문자열의 경우 : 텍스트 필드를 채울 때 "" "

프로그램을 실행할 때 모든 텍스트 필드를 채웠지 만 java.lang.NumberFormatException: For input string: ""이 표시됩니다.

내 코드는 다음과 같은 :

button.addActionListener(new ActionListener() { 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     method(); 
    } 
} 
      ); 




public void method() { 
    try { 
     String string1 = textfield1.getText(); 
     String string2 = textfield2.getText(); 
     String string3 = textfield3.getText(); 
     if (string1.length() == 0 || string2.length() == 0 || string3.length() == 0) { 
      System.out.println("fill in the required text fields"); 
      return; 
     } 
     int number = Integer.parseInt(textfield3.getText()); 
     //do something 
    } 
    catch (NumberFormatException e) { 
     System.out.println("Wrong format"); 
    } 
} 

편집 :

See more code here

+0

'string3'에'textfield3.getText();'를 지정합니다. 그것을 사용할 수도 있습니다! 또한 코드를 디버깅하십시오. 당신이 어디로 잘못 가고 있는지 알려줄 것입니다. 그리고 제공 한 코드를 살펴본 후에 나는 잘못된 것을 볼 수 없습니다. 이제 어리석은 실수를 철저히 제거 할 때입니다. 'textfield3'이 정확한 필드입니까? – christopher

+0

내 생각에이 코드는이 코드처럼 보이지만 정확하지는 않습니다. 그리고 그 버그는 아마도 "정확히는 아니"부분에있을 것입니다. 문제를 재현하는 SSCCE를 게시하십시오. –

+1

String # trim(). length()를 사용해보십시오. 일부 System.outs을 추가하여 텍스트 필드의 값을 테스트하고 코드 디버깅을 시도하십시오. – MadProgrammer

답변

2

때문에, 당신의 프로그램을 조금 테스트 한 텍스트 필드에 문제가 어떤 패널이 활성화되어 있는지 전환 할 수 있습니다.

생성자에서 JTextField를 만드는 something() 메서드를 호출합니다. 버튼을 클릭하면 다시 something()을 호출하고 새로운 JTextField가 생성되어 패널에 추가됩니다.

GUI에는 두 개의 JTextField가 있지만 동일한 위치에 있지만 그 중 하나 (마지막으로 생성 된 JTextField)에 대한 참조 만 있습니다.

메서드()를 호출 할 단추를 클릭하면. 숨겨진 TextField는 자신의 텍스트 (내 PC에서 작동하는 방식입니다)를 묻는 메시지입니다.이 텍스트는 필자 만 볼 수 있기 때문에 항상 비어 있습니다.

이에 쉽게 수정 방법을 변경하는 것이다의 actionPerformed :

@Override 
public void actionPerformed(ActionEvent e) { 
    if (e.getSource() == button1) { 
     present = something; 
     button1.setVisible(false); 
     //something(); 
     visiblePanel(); 
     previous = something; 
    } 

} 

는 그래서 JTextField를하지만 visiblePanel의 신규 작성()는 텍스트 필드와 두번째 버튼을 보장 나타낸다을 피한다.

이 변경 후 "sadda"를 입력하면 버튼을 누르고 "Numberformatexception"출력을 볼 수 있습니다. 숫자를 입력 할 때 서식이 제대로 나타나지 않습니다.

+0

그것은 일했다! 시간 내 주셔서 대단히 감사합니다. – Camilla

관련 문제