我知道标题可能没那么有用。我很抱歉。我的问题是我正在尝试创建一个简单的MPG应用程序来帮助我习惯GUI。我有一加仑和一英里的JTextField。我还有一个可编辑的JTextField来显示MPG。我试图将用户输入转换为整数,然后将加仑和英里输入除以每加仑英里数的结果,这将显示。
我有如下所示的parseInt:
int mil = Integer.parseInt(miles1.getText());
int gal = Integer.parseInt(gallons1.getText());
然后是MPG:
int mpg = gal / mil;
它在代码中没有显示错误,但是一旦我运行应用程序,我就会收到这些错误:
java.lang.NullPointerException
at app.<init>(app.java:40)
at app$1.run(app.java:26)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(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$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)
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 :(得分:0)
首先,你说你有两个名为加仑和英里的textareas但是你使用了标识符gallons1和miles1。
如果情况并非如此,请尝试初始化加仑和里程jtextarea。
例如,您可能会看到类似这样的内容
JTextArea gallons1;
JTextArea miles1;
分别尝试制作这些
JTextArea gallons1=new JTextArea();
JTextArea miles1=new JTextArea();
答案 1 :(得分:0)
听起来问题是当你调用.getText()时JTextFields为null。在对字段进行数学运算时确保它们具有值,您就可以了。
如果您想完全避免错误,请使用if (miles1.matches("[0-9]*) { logic }
如果输入不正确,则不会为Integer.parseInt
引发错误(正则表达式将失败,因为它是非数字的)。