我在我的machine.Note中运行一个简单的小程序,当执行小程序时,当小程序试图运行时,会发生“空指针异常”错误。以下代码如下所示
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.math.*;
<applet code="s09_04" width=300 height=50>
</applet>
public class s09_04 extends Applet
{
CardLayout c1;
Panel p;
Label l1;
Label l2;
Label l3;
Label l4;
TextField t1;
TextField t2;
TextField t3;
TextField t4;
public void start()
{
}
public void init()
{
c1 = new CardLayout();
l1 = new Label("Enter Name :");
l2 = new Label("Enter Place :");
l3 = new Label("Address :");
l4 = new Label("Pin :670571 ");
t1 = new TextField(20);
p = new Panel();
p.setLayout(c1);
add(l1);
add(t1);
add(l2);
add(t2);
add(l3);
add(t3);
add(l4);
add(t4);
}
public void paint(Graphics g)
{
}
}使用的命令是
javac s09_04.java
和
小程序查看器s09_04.java。
终端输出:
java.lang.NullPointerException
at java.awt.Container.addImpl(Container.java:1037)
at java.awt.Container.add(Container.java:373)
at s09_04.init(s09_04.java:32)
at java.lang.Thread.run(Thread.java:701)我的问题是什么是小程序无法启动的最可能的原因??什么时候发生空指针异常?导致空指针异常的原因是什么??我应该在代码中进行哪些更改,以便在没有任何error.Any建议的情况下平滑地运行代码/代码中的更改将appreciated.note我正在linux .thanks中运行此代码...
发布于 2014-04-03 15:16:27
因为TextField t2, t3 and t4;没有初始化。解析者
t2=new TextField(20);
t3=new TextField(20);
t4=new TextField(20);像t1一样
发布于 2014-04-03 15:24:06
小程序无法启动的最可能原因??
Applet的documentation告诉我们要向Container添加一个组件,这个组件应该被初始化。
在这里,在代码中,抛出NullPointerException的t2, t3, t4没有被初始化
何时发生空指针异常?
这是一个非常大的话题,简单地说就是一行,
当你试图访问一个未初始化的对象时,它会抛出NPE(参见示例)
Object o = null;
// o is not initialised.
o.wait();我应该对代码进行哪些更改才能使代码顺利运行而不会出现任何错误
初始化要添加到小程序中的所有组件。
t2=new TextField(20);
t3=new TextField(20);
t4=new TextField(20);发布于 2014-04-03 15:25:52
您正在声明TextField TextField t2;TextField t3;TextField t4;,但未在init()中初始化初始化t2,t3,t4。您正在添加add(t2);add(t3);add(t4); //Here The Exception
t2=new TextField(20);
t3=new TextField(20);
t3=new TextField(20);https://stackoverflow.com/questions/22830399
复制相似问题