import java.awt.*;public class demo1{ Frame f;
Panel p;
TextField t;
public static void main(String[] args){ demo2 A = new demo2(); A.setFrame(); new demo2().diao(); } public void setFrame(){ f = new Frame("测试"); p = new Panel(); f.add(p); t = new TextField("hao"); p.add(t); f.setVisible(true);
}
}class demo2 extends demo1{
public void diao(){ String s = t.getText();
System.out.println(s); }
}为什么会出现NullPointerException................如何修改呢?
希望各位能给我讲细点点,我是出学的,麻烦大家谢谢。。

解决方案 »

  1.   

    class demo2 extends demo1{
    public void diao() {
    TextField t=new TextField();//加上这句....
    String s = t.getText();
    System.out.println(s);
    }
    }
    另:写类的时候建议第一个字母大写。
      

  2.   

    blog 更新:
     think in java 各章后练习答案.....
     http://blog.csdn.net/heimaoxiaozi/
      

  3.   

    但是我的意图是想得到上面setFrame()函数里面定义的TextField得初始值“hao”.....
      

  4.   

    t = new TextField("hao"); 得到初始值“hao”????  可以得到吗?????  他不是可以打印出来的类型啊??文本框打印不出来 他会认为你打印的对象是空对象
      

  5.   

    demo2 A = new demo2();
    A.setFrame();
    new demo2().diao();第二个demo2实例中t未初始化
      

  6.   

    demo2 A = new demo2();
    A.setFrame();
    new demo2().diao();第二个demo2实例中t未初始化=================================
    正解!
    如果你是想调用第一个demo2中的方法,应该写成A.diao();
    如果你是想在几个demo2的实例中共享t,应该把t定义为静态变量。