我正在開發一個程序,該程序將啓動一個將演示Extended-Euclid算法如何執行的小程序。我有兩個JTextField,這些值將被輸入並且需要被讀取/轉換爲整數等。我實際上在閱讀輸入值時遇到了麻煩。單擊按鈕後需要讀取兩個JTextfields的輸入
更新後的問題:
我讀第一個答案後修改了自己的代碼。而不是使用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的,只是需要顯示的結果)
現在點擊我的按鈕後,我得到這些錯誤打印從控制檯:
在異常線程 「AWT-EventQueue的-1」 顯示java.lang.NullPointerException 在EuclidApplet.actionPerformed(EuclidApplet.java:87) 在javax.swing.AbstractButton.fireActionPerformed(來源不明) 在javax.swing.AbstractButton中的$ Handler.actionPerformed(來源不明) 在javax.swing.DefaultButtonModel.fireActionPerformed(來源不明) 在javax.swing.DefaultButtonModel.setPressed (Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java .awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEven tImpl(未知源) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt。 LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java。 awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access $ 000(Unknown Source) at java.awt.EventQueue $ 1.run(Unknown Source) at java.awt.EventQueue $ 1.run(Unknown Source ) 在java.security.AccessController.doPrivileged(本機方法) 在java.security.AccessControlContext $ 1.doIntersectionPrivilege(來源不明) 在java.security.AccessControlContext $ 1.doIntersectionPrivilege(來源不明) 在java.awt.EventQueue中的$ 2中。 (Unknown Source) at java.awt.EventQueue $ 2.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext $ 1.doIntersectionPrivilege(Unknown Source) at java。 awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 在java.awt.EventDispatchThread。pumpEventsForHierarchy(未知來源) 在java.awt.EventDispatchThread.pumpEvents(未知來源) 在java.awt.EventDispatchThread.pumpEvents(未知來源) 在java.awt.EventDispatchThread.run(未知來源)
我在該行得到一個NullPointerException異常時,我真想
nText = nField.getText();
但我仍然不知道爲什麼我不能讓一個已經插入我的JTextField中的文本。我找到的每個例子都表明,這應該起作用,但我無法得到它。謝謝。
你爲什麼不簡單地閱讀actionPerformed方法中的文本,而不是通過DocumentListener的卷積和所有與它相關的卷積? – 2011-05-03 02:01:17