初学者,遇到一个小麻烦,请各位帮帮我。。。。。。
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................如何修改呢?
希望各位能给我讲细点点,我是出学的,麻烦大家。。。谢谢。。。。。
------解决方案--------------------t本來就是個null啊
------解决方案--------------------class demo2 extends demo1{
public void diao() {
TextField t=new TextField();//加上这句....
String s = t.getText();
System.out.println(s);
}
}
另:写类的时候建议第一个字母大写。
------解决方案--------------------blog 更新:
think in java 各章后练习答案.....
http://blog.csdn.net/heimaoxiaozi/
------解决方案--------------------t = new TextField( "hao ");
得到初始值“hao”???? 可以得到吗????? 他不是可以打印出来的类型啊??
文本框打印不出来 他会认为你打印的对象是空对象
------解决方案--------------------我也是刚入门,但还是帮你顶一下。
------解决方案--------------------demo2 A = new demo2();
A.setFrame();
new demo2().diao();
第二个demo2实例中t未初始化
------解决方案--------------------demo2 A = new demo2();
A.setFrame();
new demo2().diao();
第二个demo2实例中t未初始化
=================================
正解!
如果你是想调用第一个demo2中的方法,应该写成A.diao();
如果你是想在几个demo2的实例中共享t,应该把t定义为静态变量。