Java 对于输入字符串:"&引用;填写文本字段时
我正在用Java编写一个程序,其中有一些文本字段和一个按钮 我得到一个Java 对于输入字符串:"&引用;填写文本字段时,java,actionlistener,numberformatexception,Java,Actionlistener,Numberformatexception,我正在用Java编写一个程序,其中有一些文本字段和一个按钮 我得到一个java.lang.NumberFormatException:用于输入字符串:“,即使我在运行程序时已填写了所有文本字段 我的代码如下所示: button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { method(); } }
java.lang.NumberFormatException:用于输入字符串:“
,即使我在运行程序时已填写了所有文本字段
我的代码如下所示:
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
method();
}
}
);
public void method() {
try {
String string1 = textfield1.getText();
String string2 = textfield2.getText();
String string3 = textfield3.getText();
if ( string1.length() == 0 || string2.length() == 0 || string3.length() == 0) {
System.out.println("fill in the required text fields");
return;
}
int number = Integer.parseInt(textfield3.getText());
//do something
}
catch ( NumberFormatException e ) {
System.out.println("Wrong format");
}
}
编辑:
我对您的程序进行了一些测试,您的文本字段有问题,因为创建了面板并切换了哪个面板处于活动状态 在构造函数中调用something()方法,该方法创建JTextField。单击按钮后,再次调用something(),并生成一个新的JTextField,您还可以将其添加到面板中 因此,GUI上有两个jTextField,位置完全相同,但只引用其中一个(最后创建的一个) 单击将调用方法()的按钮时。隐藏的文本字段被要求输入他的文本(这是它在我的电脑上的工作方式),而这个字段总是空的,因为我只能写入我看到的文本 解决此问题的一个简单方法是更改执行的方法:
@Override
public void actionPerformed( ActionEvent e ) {
if ( e.getSource() == button1 ) {
present = something;
button1.setVisible(false);
//something();
visiblePanel();
previous = something;
}
}
因此,我避免新创建JTextField,但visiblePanel()确保显示TextField和第二个按钮
更改后,我可以输入“sadda”,按下按钮并查看输出“Numberformatexception”。当我输入一个数字时,我看不到任何东西,所以格式是有效的。您分配
textfield3.getText()代码>至string3
。还不如用它!另外,调试代码。它会告诉你哪里出了问题。看了你提供的代码后,我看不出有什么错误。现在是消除一些愚蠢错误的时候了。你确定textfield3
是正确的字段吗?我猜你的代码看起来像这样,但不完全是这样。错误可能在“不完全”部分。发布重现问题的SSCE。尝试使用字符串#trim().length()。添加一些System.outs以测试文本字段的值并尝试调试代码我认为错误不在方法中,因为您捕获了异常,您可以发布更多代码,还是这是您唯一一次在代码中将字符串转换为数字?@JBNizet我现在添加了代码链接。