首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理java applet中的空指针异常?

如何处理java applet中的空指针异常?
EN

Stack Overflow用户
提问于 2014-04-03 15:13:24
回答 4查看 1.7K关注 0票数 0

我在我的machine.Note中运行一个简单的小程序,当执行小程序时,当小程序试图运行时,会发生“空指针异常”错误。以下代码如下所示

代码语言:javascript
复制
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。

终端输出:

代码语言:javascript
复制
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中运行此代码...

EN

回答 4

Stack Overflow用户

发布于 2014-04-03 15:16:27

因为TextField t2, t3 and t4;没有初始化。解析者

代码语言:javascript
复制
t2=new TextField(20);
t3=new TextField(20);
t4=new TextField(20);

像t1一样

票数 0
EN

Stack Overflow用户

发布于 2014-04-03 15:24:06

小程序无法启动的最可能原因??

Appletdocumentation告诉我们要向Container添加一个组件,这个组件应该被初始化。

在这里,在代码中,抛出NullPointerExceptiont2, t3, t4没有被初始化

何时发生空指针异常?

这是一个非常大的话题,简单地说就是一行,

当你试图访问一个未初始化的对象时,它会抛出NPE(参见示例)

代码语言:javascript
复制
Object o = null;
// o is not initialised.
o.wait();

我应该对代码进行哪些更改才能使代码顺利运行而不会出现任何错误

初始化要添加到小程序中的所有组件。

代码语言:javascript
复制
t2=new TextField(20);
t3=new TextField(20);
t4=new TextField(20);
票数 0
EN

Stack Overflow用户

发布于 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

代码语言:javascript
复制
         t2=new TextField(20);
         t3=new TextField(20);
         t3=new TextField(20);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22830399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档