2017-05-13 16 views
1

내 양식에 2의 JTextField를 가지고 있고 전 세계적으로JTextField에서 int 값을 읽는 방법?

int order = Integer.parseInt(textOrder.getText()); 
    int history = Integer.parseInt(textHistory.getText()); 

이 두 변수를 선언하지만 이러한 오류를 얻었다. 이 TextComponent에 포함 된 텍스트를 돌려줍니다 getText() 문서에 따르면

java.lang.NullPointerException 
at FrameController.<init>(FrameController.java:39)//this is line 39: int history=Integer.parseInt(textHistory.getText()); 

at FrameController$1.run(FrameController.java:56)//this is line 56:  FrameController window = new FrameController(); 
at java.awt.event.InvocationEvent.dispatch(Unknown Source) 
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
at java.awt.EventQueue.access$500(Unknown Source) 
at java.awt.EventQueue$3.run(Unknown Source) 
at java.awt.EventQueue$3.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) 
at java.awt.EventQueue.dispatchEvent(Unknown Source) 
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
at java.awt.EventDispatchThread.run(Unknown Source) 
+0

JTextField(String text, int columns)'나는이 두 변수 globally' 선언했다. – camickr

+0

@camickr 좋아, 이제 나는 그걸'int history; int order = 'int order = Integer.parseInt (textOrder.getText());'버튼을 누를 때 코드는 편집 된 변수로 작동해야하기 때문에 어디에 넣어야합니까? – Catalin

+1

이러한 변수는 null이 아닙니다. 문제는 textOrder/textHistory입니다. 기본 디버깅을하는 방법을 모르십니까? 필요한 것은 System.out.println (textOrder)을 추가하여 그것이 null인지 아닌지 확인하는 것입니다. 다른 변수에 대해서도 반복하십시오. – camickr

답변

1
JTextField textOrder=new JTextField(); 
textOrder.getText() // NullPointerException if the document is null 

. 기본이되는 문서가 null의 경우, NullPointerException를 돌려줍니다.

이러한 생성자 중 하나를 사용하는 경우 문서는 null입니다. 당신이 NPE을 받고 있기 때문에 분명히 그렇게하지 -

JTextField(), JTextField(String text), JTextField(int columns)