java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:470)
at java.lang.Integer.parseInt(Integer.java:499)
at JudgeNumber.<init>(JudgeNumber.java:22)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:785)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:714)
at sun.applet.AppletPanel.run(AppletPanel.java:368)
at java.lang.Thread.run(Thread.java:662)
我的代码如下:(求高人指点)
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
@SuppressWarnings("serial")
public class JudgeNumber extends Applet implements ActionListener
{
TextField field1=new TextField(20);
TextField field2=new TextField(50);
Button bu=new Button("判断");
public void init()
{
field1.setEditable(true);
field2.setEditable(false);
add(field1);
add(field2);
add(bu);
bu.addActionListener(this);
}
int a=Integer.parseInt(field1.getText());
@Override
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==bu)
{
boolean flag = true;
for(int i=a-1;i>1;i--)
if(a%i==0)
flag=false;
if(flag)
field2.setText("你给的数是素数!");
else
field2.setText("你给的数不是素数!");
}
}
}
------解决方案--------------------
int a=Integer.parseInt(field1.getText());
程序启动时,field1没有任何字符,所有是"",不能转为int型。
你可以给field1一个默认值为"0";