Java 存在文本时,getText()方法返回null
每当我在文本框中输入一个数字并获取文本并进行转换时,我都会得到一个异常:Java 存在文本时,getText()方法返回null,java,swing,jtextfield,numberformatexception,Java,Swing,Jtextfield,Numberformatexception,每当我在文本框中输入一个数字并获取文本并进行转换时,我都会得到一个异常: Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "" 下面是该类的代码: 数字生成器: 操作添加: 添加检查: 文本框当前有一个空字符串(或者可能只有空格--trim删除空格)。它没有空值。异常是因为空字符串不是有效数字。您应该捕获异常,然后在JOptionPane中使用它: try {
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
下面是该类的代码:
数字生成器:
操作添加:
添加检查:
文本框当前有一个空字符串(或者可能只有空格--
trim
删除空格)。它没有空值。异常是因为空字符串不是有效数字。您应该捕获异常,然后在JOptionPane中使用它:
try {
Integer textNumber = Integer.parseInt(textbox);
...
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(this, ex.getMessage(), "Number Error", JOptionPane.ERROR_MESSAGE);
}
文本框当前有一个空字符串(或者可能只有空格--
trim
删除空格)。它没有空值。异常是因为空字符串不是有效数字。您应该捕获异常,然后在JOptionPane中使用它:
try {
Integer textNumber = Integer.parseInt(textbox);
...
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(this, ex.getMessage(), "Number Error", JOptionPane.ERROR_MESSAGE);
}
您正在创建一个新的操作添加
,其中包含一个新的空文本框。您希望该文本框有一个值,但它不会。它与您正在与之交互的任何文本框都没有任何关系
您正在创建一个新的
操作添加
,其中包含一个新的空文本框。您希望该文本框有一个值,但它不会。它与您正在与之交互的任何文本框都没有任何关系。似乎add.textbox
是空的。@Eng.Fouad它不是空的,我输入了数字,如2,但仍然会出现此错误您在代码中与之交互的文本框肯定是空的。很可能,GUI中的文本框与您正在与之交互的对象不同。@user2317720您是否通过调试器运行了代码?在调用Integer.parseInt
之前使用System.out.println(textbox)
怎么样?为了更快地获得帮助,请发布一个。似乎add.textbox
是空的。@Eng.Fouad它不是空的,我输入了数字,比如2,我仍然收到了这个错误。您在代码中与之交互的文本框肯定是空的。很可能,GUI中的文本框与您正在与之交互的对象不同。@user2317720您是否通过调试器运行了代码?在调用Integer.parseInt
之前使用System.out.println(textbox)
怎么样?为了更快地获得帮助,请发布一个。其中有一个数字,它无法识别它,并且发现了问题:您正在创建一个新的操作添加
。最简单的解决方案是将Add\u check
类声明为嵌套在Oper\u Add
类中。然后直接访问文本框
,而不是创建一个新的操作添加
。谢谢,这很有帮助。其中有一个数字,它无法识别它,并且发现了问题:您正在创建一个新的操作添加
。最简单的解决方案是将Add\u check
类声明为嵌套在Oper\u Add
类中。然后直接访问文本框
,而不是创建一个新的操作添加
。谢谢,这对alotOk很有帮助,那么我是不是只在操作添加中添加了复选框?谢谢,这对我很有帮助,alotOk,那么我只是在操作添加中添加了复选框?谢谢,这对我很有帮助
package Main.Oper_check;
import java.awt.event.*;
import javax.swing.JOptionPane;
import Main.Oper_classes.*;
public class Add_Check implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
Oper_add add = new Oper_add();
String textbox = add.textbox.getText().trim();
Integer textboxC = Integer.parseInt(textbox);
Integer total = add.Rnumber1 + add.Rnumber2;
}
}
try {
Integer textNumber = Integer.parseInt(textbox);
...
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(this, ex.getMessage(), "Number Error", JOptionPane.ERROR_MESSAGE);
}
Oper_add add = new Oper_add();
String textbox = add.textbox.getText().trim();
Integer textNumber = Integer.parseInt(textbox);