나는 확장 Euclid 알고리즘의 수행 방법을 보여줄 애플릿을 시작하는 프로그램을 만들고 있습니다. 두 개의 JTextFields 값을 입력하고 읽고 int/등으로 변환 할 필요가 있습니다. 실제로 입력 값을 읽기 시작하는 데 문제가 있습니다.버튼을 클릭 한 후 두 개의 JTextfield 입력을 읽어야합니다.
업데이트 된 질문 :
내가 처음 답을 읽은 후 내 코드를 변경했습니다. DocumentListener를 사용하는 대신 제안 된대로 actionPerformed 메서드에서 모든 작업을 수행하고 있지만 테스트를 시도 할 때도 여전히 오류가 발생합니다.
이 내 현재의 actionPerformed입니다 :
public void actionPerformed(ActionEvent event) {
System.out.println(event.getActionCommand());
String quotient = "";
nText = nField.getText();
mText = mField.getText();
if("Find GCD".equals(event.getActionCommand())){
int nInt = Integer.parseInt(nText);
int mInt = Integer.parseInt(mText);
int q = mInt/nInt;
quotient = (Integer.toString(q));
}
else quotient = "n/a";
//NOT the gcd, just to see if this will display
gcd.setText(quotient);
gcd.setEditable(false);
}
(참고 : GCD 다른 JTextField를하지만, 단지 결과를 표시하는 데 필요한) 인쇄
이제 내 버튼을 클릭 한 후, 내가 갖는 이러한 오류 밖으로 콘솔 :
예외 EuclidApplet.actionPerformed (EuclidApplet.java:87)에서 스레드 "AWT-EventQueue의-1"java.lang.NullPointerException이 에javax.swing.DefaultButtonModel.fireActionPerformed에서 javax.swing.AbstractButton $ Handler.actionPerformed (알 수없는 소스) 에서 javax.swing.AbstractButton.fireActionPerformed (알 수없는 소스) (알 수없는 소스) 에서javax.swing.DefaultButtonModel.setPressed에서 (알 수없는 소스) 에서 javax.swing.plaf.basic.BasicButtonListener.mouseReleased (알 수없는 소스) 에서 java.awt.Component.processMouseEvent (알 수없는 소스) 에서 javax.swing.JComponent.processMouseEvent (알 수없는 소스) at java .awt.Component.processEvent (알 수없는 소스) at java.awt.Container.processEvent (알 수없는 소스) at java.awt.Component.dispatchEventImpl (알 수없는 소스) at java.awt.Container.dispatchEven tImpl (알 소스)에 java.awt.LightweightDispatcher.processMouseEvent java.awt.LightweightDispatcher.retargetMouseEvent (알 소스)에 java.awt.Component.dispatchEvent (알 소스) (알 소스)에있는 java.awt 에서 . LightweightDispatcher.dispatchEvent (알 수없는 소스) java.awt.Component.dispatchEvent에서 java.awt.Window.dispatchEventImpl (알 수없는 소스) 에서 java.awt.Container.dispatchEventImpl (알 수없는 소스) (알 수없는 소스) 자바에서 에서 . awt.EventQueue.dispatchEventImpl (알 수없는 소스) at java.awt.EventQueue.access $ 000 (알 수없는 소스) at java.awt.EventQueue $ 1.run (알 수없는 소스) at java.awt.EventQueue $ 1.run (알 수없는 소스)java.awt.EventQueue $을 2 java.security.AccessController.doPrivileged (기본 방법) java.security.AccessControlContext $ 1.doIntersectionPrivilege (알 수없는 소스) 에서 java.security.AccessControlContext $ 1.doIntersectionPrivilege (알 수없는 소스) 에서 에서. java.awt.EventQueue $의 2.run (알 수없는 소스) java.security.AccessController.doPrivileged (기본 방법)에서 java.security.AccessControlContext $ 1.doIntersectionPrivilege (알 수없는 소스) 자바에서 에서 에서 실행 (알 수없는 소스) . (알 수없는 소스)에서 awt.EventQueue.dispatchEvent 210에서의 java.awt.EventDispatchThread.java.awt.EventDispatchThread.run에서 pumpEventsForHierarchy (알 소스)에 java.awt.EventDispatchThread.pumpEvents (알 소스)에 java.awt.EventDispatchThread.pumpEvents (알 소스) (알 소스)
내가
nText = nField.getText();
을 설정 어디 라인에서 NullPointerException이납니다하지만, 난 여전히 내 JTextField를 삽입 된 것 텍스트를 얻을 수 아니에요 이유를 모르겠어요. 내가 찾은 모든 사례는 이것이 효과가 있다는 것을 보여 주지만 그것을 얻을 수는 없습니다. 감사.
DocumentListener의 컨볼 루션을 거치지 않고 actionPerformed 메서드의 텍스트를 읽는 것만 큼 간단하지 않은 이유는 무엇입니까? –