黑马程序员技术交流社区

标题: 各位大大帮忙看下我程序那里有问题?GUI [打印本页]

作者: heima_xyu    时间: 2014-5-9 14:46
标题: 各位大大帮忙看下我程序那里有问题?GUI
  1. package Ketangcg;
  2. import java.awt.*;
  3. import java.awt.event.WindowAdapter;
  4. import java.awt.event.WindowEvent;



  5. public class DemoUI {
  6. private Frame f;
  7. private Button bt;
  8. private Label l;
  9. DemoUI(){
  10. init();
  11. }


  12. public static void main(String[] args)
  13. {
  14. DemoUI d=new DemoUI();
  15. System.out.println("sa");


  16. }
  17. private void myEvent()
  18. {
  19. f.addWindowListener(new WindowAdapter() {
  20. public void windowClosing(WindowEvent e)
  21. {
  22. System.out.println("关闭");
  23. System.exit(0);
  24. }

  25. });
  26. }
  27. private void init(){
  28. Frame f=new Frame("my swing");
  29. Button bt=new Button("按钮");
  30. Label l=new Label();
  31. f.add(l);
  32. f.add(bt);
  33. f.setSize(500,300);
  34. f.setLocation(300,200);
  35. f.setLayout(new FlowLayout());
  36. f.setVisible(true);
  37. myEvent();
  38. }

  39. }
复制代码
我的eclipse运行报异常。
Exception in thread "main" java.lang.NullPointerException
at Ketangcg.DemoUI.myEvent(DemoUI.java:26)
at Ketangcg.DemoUI.init(DemoUI.java:45)
at Ketangcg.DemoUI.<init>(DemoUI.java:13)
at Ketangcg.DemoUI.main(DemoUI.java:19)

作者: 月光海    时间: 2014-5-9 15:23
  1. Frame f=new Frame("my swing");
  2. Button bt=new Button("按钮");
  3. Label l=new Label();
复制代码

这里错了,改成这样
  1. f=new Frame("my swing");
  2. bt=new Button("按钮");
  3. l=new Label();
复制代码

因为你上面已经定义过了,不需要再定义,这样定义的话这个就是局部对象了稚嫩这里面访问,外面的还是指向null
作者: 没壳的蜗牛    时间: 2014-5-9 15:26
学习了!
作者: heima_xyu    时间: 2014-5-9 16:46
月光海 发表于 2014-5-9 15:23
这里错了,改成这样

因为你上面已经定义过了,不需要再定义,这样定义的话这个就是局部对象了稚嫩这里面 ...

感谢!!
作者: 倪大大    时间: 2014-5-9 21:41
同上 这是空指针异常,当遇到这个异常,你就检查下你的变量声明的时候哪里出问题了就好




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2