图形编程的问题,请帮我看看
我检查了很多次了,代码觉得一点问题都没有啊,为什么编译的时候会出现:Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at myawt1.YourFrame.<init>(YourFrame.java:23)
at myawt1.YourFrame.main(YourFrame.java:143)
说我有空指针,我查了没问题啊,请哪位大大帮我看下,小弟初学
package myawt1;
import java.awt.*;
import java.awt.event.*;
public class YourFrame extends Frame{
private Panel BorderLayoutPanel;
private Panel FlowLayoutPanel;
private Panel GridLayoutPanel;
private Panel CardLayoutPanel;
public YourFrame(String name)
{
super(name);
setSize(400, 300);
setLocation(100, 100);
setBackground(Color.CYAN);
addWindowListener(new YourWindowListener());
setLayout(new GridLayout(2,2));
putBorderLayoutPanel();
putFlowLayoutPanel();
putGridLayoutPanel();
putCardLayoutPanel();
add(BorderLayoutPanel);
add(FlowLayoutPanel);
add(GridLayoutPanel);
add(CardLayoutPanel);
MenuBar mb=new MenuBar();
Menu m1=new Menu("文件");
Menu m2=new Menu("编辑");
Menu m3=new Menu("运行");
Menu m4=new Menu("帮助");
MenuItem mi1=new MenuItem("新建");
MenuItem mi2=new MenuItem("打开");
MenuItem mi3=new MenuItem("保存");
MenuItem mi4=new MenuItem("关闭");
mi4.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
MenuItem mi5=new MenuItem("复制");
MenuItem mi6=new MenuItem("粘贴");
MenuItem mi7=new MenuItem("查找");
MenuItem mi8=new MenuItem("删除");
MenuItem mi9=new MenuItem("运行");
MenuItem mi10=new MenuItem("暂停");
mb.add(m1);
mb.add(m2);
mb.add(m3);
mb.add(m4);
m1.add(mi1);
m1.add(mi2);
m1.add(mi3);
m1.add(mi4);
m2.add(mi5);
m2.add(mi6);
m2.add(mi7);
m2.add(mi8);
m3.add(mi9);
m4.add(mi10);
setMenuBar(mb);
}
public void putBorderLayoutPanel()
{
Panel BorderLayoutPanel=new Panel(new BorderLayout());
Button btn1=new Button("东邪黄老邪");
Button btn2=new Button("西毒欧阳锋");
Button btn3=new Button("南帝段王爷");
Button btn4=new Button("北丐洪七公");
Button btn5=new Button("中神通王重阳");
BorderLayoutPanel.add(btn1,BorderLayout.EAST);
BorderLayoutPanel.add(btn2,BorderLayout.WEST);
BorderLayoutPanel.add(btn3,BorderLayout.SOUTH);
BorderLayoutPanel.add(btn4,BorderLayout.NORTH);
BorderLayoutPanel.add(btn5,BorderLayout.CENTER);
}
public void putFlowLayoutPanel()
{
Panel FlowLayoutPanel=new Panel(new FlowLayout());
Button btn6=new Button("确定");
btn6.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
((Button)e.getSource()).setLabel("你按了确定");;
}
});
Button btn7=new Button("取消");
Button btn8=new Button("退出");
btn8.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
TextArea ta=new TextArea();
FlowLayoutPanel.add(btn6);
FlowLayoutPanel.add(btn7);
FlowLayoutPanel.add(btn8);
FlowLayoutPanel.add(ta);
}
public void putGridLayoutPanel()
{
Panel GridLayoutPanel=new Panel(new GridLayout(2,2));
Button btn9=new Button("毒蛇神殿");
Button btn10=new Button("风暴要塞");
Button btn11=new Button("海加尔山");
Button btn12=new Button("黑暗神庙");
GridLayoutPanel.add(btn9);
GridLayoutPanel.add(btn10);
GridLayoutPanel.add(btn11);
GridLayoutPanel.add(btn12);
}
public void putCardLayoutPanel()
{
final CardLayout cl=new CardLayout();
final Panel CardLayoutPanel=new Panel(cl);
ActionListener al1=new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
cl.next(CardLayoutPanel);
}
};
Button btn13=new Button("凯尔萨斯");
Button btn14=new Button("瓦斯琪");
Button btn15=new Button("阿克蒙德");
Button btn16=new Button("伊利丹·怒风");
btn13.addActionListener(al1);
btn14.addActionListener(al1);
btn15.addActionListener(al1);
btn16.addActionListener(al1);
CardLayoutPanel.add(btn13, "1");
CardLayoutPanel.add(btn14, "2");
CardLayoutPanel.add(btn15, "3");
CardLayoutPanel.add(btn16, "4");
}
public static void main(String[] args)throws Exception
{
YourFrame f=new YourFrame("wow!");
f.show();
}
}
class YourWindowListener extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}