Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的parseInt中的.getText()错误_Java_Nullpointerexception_Jtextfield_Gettext_Parseint - Fatal编程技术网

Java中的parseInt中的.getText()错误

Java中的parseInt中的.getText()错误,java,nullpointerexception,jtextfield,gettext,parseint,Java,Nullpointerexception,Jtextfield,Gettext,Parseint,我知道这个标题可能没那么有用。我真的很抱歉。我的问题是,我试图创建一个简单的MPG应用程序来帮助我适应GUI。我有一加仑和一英里的汽油。我还有一个ueditable JTextField来显示MPG。我试图将用户输入转换为整数,然后将加仑和英里输入除以每加仑英里数的结果,结果将显示出来 我的parseInt如下所示: int mil = Integer.parseInt(miles1.getText()); int gal = Integer.parseInt(gallons1.

我知道这个标题可能没那么有用。我真的很抱歉。我的问题是,我试图创建一个简单的MPG应用程序来帮助我适应GUI。我有一加仑和一英里的汽油。我还有一个ueditable 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)
java.lang.NullPointerException
应用程序(app.java:40)
在app$1.run上运行(app.java:26)
在java.awt.event.InvocationEvent.dispatch(未知源)处
位于java.awt.EventQueue.dispatchEventImpl(未知源)
位于java.awt.EventQueue.access$200(未知源)
在java.awt.EventQueue$3.run处(未知源)
在java.awt.EventQueue$3.run处(未知源)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.security.ProtectionDomain$1.doIntersectionPrivilege(未知源)
位于java.awt.EventQueue.dispatchEvent(未知源)
位于java.awt.EventDispatchThread.pumpOneEventForFilters(未知源)
位于java.awt.EventDispatchThread.pumpEventsForFilter(未知源)
位于java.awt.EventDispatchThread.pumpEventsForHierarchy(未知源)
位于java.awt.EventDispatchThread.pumpEvents(未知源)
位于java.awt.EventDispatchThread.pumpEvents(未知源)
位于java.awt.EventDispatchThread.run(未知源)

有人知道这是什么原因吗?

首先,你说你有两个文本区域,分别命名为加仑和英里,但你使用了标识符加仑1和英里1

如果不是这样的话,那么试着初始化该区域的加仑数和英里数

例如,你可能会看到这样的东西

    JTextArea gallons1;
    JTextArea miles1;
试着分别做这些

    JTextArea gallons1=new JTextArea();
    JTextArea miles1=new JTextArea();

听起来问题在于调用.getText()时JTextFields为空。在对字段进行计算时,确保它们有一个值,这样您就不会有问题了


如果要完全避免错误,请使用
If(miles1.matches([0-9]*){logic}
,如果输入错误,它不会为
整数.parseInt
抛出错误(正则表达式将失败,因为它不是数字)。

miles1
gallons1
null
(或两者都是)。您可能应该在app.java的第40行或其附近显示代码,因为这是发生NullPointerException的地方。@Samhain第40行是'int mil=Integer.parseInt(miles1.getText());`@user3320501 Then miles1为空。您尚未初始化它。@Samhain如何初始化它?我希望它获取两个JTextfield的用户输入,然后在单击按钮后将它们显示在不可编辑的JTextfield中。