import java.awt.*;
import javax.swing.*;public class GridLayoutDemo {
private JFrame frame;
private JButton b1,b2,b3,b4,b5,b6;

public static void main(String args[]) {
GridLayoutDemo that=new GridLayoutDemo();
that.go();
}
public void go() {
frame=new JFrame("Grid example");
Container contentPane=frame.getContentPane();
contentPane.setLayout(new GridLayout(3,2));

b1=new JButton("grid_1");
b2=new JButton("grid_2");
b3=new JButton("grid_3");
b4=new JButton("grid_4");
b5=new JButton("grid_5");
b5=new JButton("grid_6");

contentPane.add(b1);
contentPane.add(b2);
contentPane.add(b3);
contentPane.add(b4);
contentPane.add(b5);
contentPane.add(b6);

frame.pack();
frame.setVisible(true);
}}异常显示如下:Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Container.java:1041)
at java.awt.Container.add(Container.java:365)
at GridLayoutDemo.go(GridLayoutDemo.java:29)
at GridLayoutDemo.main(GridLayoutDemo.java:10)

解决方案 »

  1.   

    b5=new JButton("grid_5"); 
    b6=new JButton("grid_6");
    已经解决了
      

  2.   

    坦白的说我第一次看见that.go(); 
      

  3.   

    that.go() 。我也是第一次见过。
      

  4.   

    晕that是对象,调用该对象的一个方法,就是这样调用的,没什么奇怪的吧
      

  5.   

    补充上贴:  that是对象属性(打字打快了,^_^)
      

  6.   


    我也第一次见,这么命名真有点幽默呢。虽然说只要符合规范怎么命名都可以,但是为了保证可读性好,总要写得易于理解吧。that.go()……