import javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class Landmine extends JFrame
{
                
        JPanel landminePanel = new JPanel();//创建地雷面板
        
        //JButton 
        JPanel menuPanel = new JPanel();    //创建菜单按钮面板
        JPanel topPanel = new JPanel();     //创建顶部面板
        public Landmine()
        {
                super("扫雷");//标题
                setSize(600,600);//窗口尺寸
                setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//最大化、最小化、关闭按钮
BorderLayout ff = new BorderLayout();//创建布局管理器
setLayout(ff);//关联布局管理器
GridLayout dd = new GridLayout(8,8);  
landminePanel.setLayout(dd);

JButton [] lei = new JButton[50];
for(int i=0; i<50; ++i)
{
       lei[i].setText(i+" ");
       landminePanel.add(lei[i]); 
}
add(landminePanel,BorderLayout.CENTER);
add(menuPanel,BorderLayout.SOUTH);
setResizable(false);//禁止最大化
setVisible(true);//显示之
        }
        public static void main(String[] argus)
        {
                Landmine Zhang = new Landmine();
        }
}C:\Users\barry\Desktop>javac Landmine.javaC:\Users\barry\Desktop>java Landmine
Exception in thread "main" java.lang.NullPointerException
        at Landmine.<init>(Landmine.java:26)
        at Landmine.main(Landmine.java:36)
编译正确,但是不能运行,怎么改啊……我新手,有低级错误请轻砸……
我想写个扫雷程序的,但是不知道怎么用数组创建按钮

解决方案 »

  1.   

    at Landmine.<init>(Landmine.java:26)
      at Landmine.main(Landmine.java:36)把出错行标示出来
      

  2.   


    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;public class Landmine extends JFrame
    {
                    
            JPanel landminePanel = new JPanel();//创建地雷面板
            
            //JButton 
            JPanel menuPanel = new JPanel();    //创建菜单按钮面板
            JPanel topPanel = new JPanel();     //创建顶部面板
            public Landmine()
            {
                    super("扫雷");//标题
                    setSize(600,600);//窗口尺寸
                    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//最大化、最小化、关闭按钮
                                    BorderLayout ff    =    new    BorderLayout();//创建布局管理器
                                    setLayout(ff);//关联布局管理器
                                    GridLayout dd    =    new    GridLayout(8,8);  
                                    landminePanel.setLayout(dd);
                                    
                                    JButton [] lei = new JButton[50];
                                    for(int i=0; i<50; ++i)
                                    {
                                           lei[i].setText(i+" "); //26行,换成setLabel也是一样
                                           landminePanel.add(lei[i]); 
                                    }
                                    add(landminePanel,BorderLayout.CENTER);                                
                                    add(menuPanel,BorderLayout.SOUTH);
                                    setResizable(false);//禁止最大化
                                    setVisible(true);//显示之
            }
            public static void main(String[] argus)
            {
                    Landmine Zhang = new Landmine();//36行
            }
    }
      

  3.   

     JButton [] lei = new JButton[50];
    上面这句只产生了个数组,但是里面的每一个元素并没有初始化,所以报NullPointerException,在for循环中加入一句代码,
    lei[i] = new JButton();
    应该就好了!
      

  4.   

    因为数组中的每一个元素都是JButton类的对象,所以要new的,不然是null!