eclipse出错Exception in thread "main" java.lang.NullPointerException

问题相关代码

ChuangKou.java

package turing;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class ChuangKou
{
    // TODO:变量声明
    // V持有C的对象
    KongZhi kz = new KongZhi();
    

    // -------------------------------------------------------
    窗口 ck = null;

    ChuangKou()
    {
        // TODO:初始化
        kz.chuShiHua();

        // -------------------------------------------------------
        ck = new 窗口();
        // 窗口 宽+2*立体边, 高+2*立体边+标题栏
        ck.setSize(5 * 2 + 1000, 780 + 2 * 5);

        ck.setVisible(true);
        ck.repaint();
    }

    class 窗口 extends JFrame
    {
        面板    mb   = null;
        窗口监听器 exit = null;

        窗口()
        {
            mb = new 面板();
            this.add(mb);

            exit = new 窗口监听器();
            this.addWindowListener(exit);
        }

        class 窗口监听器 extends WindowAdapter
        {
            public void windowClosing(WindowEvent e)
            {
                System.exit(0);
            }
        }

        class 面板 extends JPanel
        {
            鼠标监听器 sb = null;

            面板()
            {
                sb = new 鼠标监听器();
                this.addMouseListener(sb);
                this.addMouseMotionListener(sb);
            }

            class 鼠标监听器 extends MouseAdapter implements MouseMotionListener
            {
                public void mousePressed(MouseEvent e)
                {
                    int mx = e.getX();
                    int my = e.getY();
                    // TODO:鼠标 按下
                    kz.linCaozuo(mx, my);

                    // -------------------------------------------------------
                    repaint();
                }

                public void mouseDragged(MouseEvent e)
                {
                    int mx = e.getX();
                    int my = e.getY();
                    // TODO:鼠标 拖动
                    kz.tuoCaoZuo(mx, my);

                    // -------------------------------------------------------
                    repaint();
                }

                public void mouseReleased(MouseEvent e)
                {
                    int mx = e.getX();
                    int my = e.getY();
                    // TODO:鼠标 抬起
                    kz.fangCaoZuo(mx, my);

                    // -------------------------------------------------------
                    repaint();
                }

                public void mouseClicked(MouseEvent e)
                {
                    int mx = e.getX();
                    int my = e.getY();
                    // TODO:鼠标 单击
                    kz.faCaoZuo(mx, my);

                    // -------------------------------------------------------
                    repaint();
                }

                public void mouseMoved(MouseEvent e)
                {
                }
            }

            public void paint(Graphics g)
            {
                // //路径:图片-右键-属性-路径src/
                // Image tu=(new ImageIcon( 路径 )).getImage();
                // g.drawImage(tu,x,y,null);

                // TODO:绘图 显示
                kz.xianShi(g);

                // -------------------------------------------------------
            }
        }
    }

    public static void main(String[] args)
    {
        new ChuangKou();
    }
}

KongZhi.java

package turing;

import java.awt.Graphics;
import java.awt.Image;
import javax.swing.ImageIcon;

public class KongZhi
{
    private static final boolean yingLeMa = false;
    // C持有M对象
    Zhang    zhang;
    Fu       fu;
    Chuan[]  chuans;
    LinChuan linChuan;

    Chuan    congChuan;
    Chuan    daoChuan;

    public void chuShiHua()
    {
        fu = new Fu();
        chuans = new Chuan[10];
        for (int i = 0; i < 10; i++)
        {
            chuans[i] = new Chuan(i);
        }
        for (int i = 0; i < 44; i++)
        {
            zhang = fu.fa();
            chuans[i % 10].jie(zhang);
        }
        for (int i = 0; i < 10; i++)
        {
            zhang = fu.fa();
            zhang.fanZhengMian();
            chuans[i % 10].jie(zhang);
        }

    }

    public void xianShi(Graphics g)
    {
        Image tu = (new ImageIcon("pic/1/背景.png")).getImage();
        g.drawImage(tu, 0, 0, null);

        fu.xianShi(g);

        for (int i = 0; i < 10; i++)
        {
            chuans[i].xianShi(g);
        }

        if (linChuan != null)
        {
            linChuan.xianShi(g);
        }

    }

    public void faCaoZuo(int mx, int my)
    {
        if (fu.anMa(mx, my) == false)
        {
            return;
        }

        for (int i = 0; i < 10; i++)
        {
            zhang = fu.fa();
            zhang.fanZhengMian();
            chuans[i % 10].jie(zhang);
        }
    }

    public void linCaozuo(int mx, int my)
    {
        congChuan = chuans[mx / 100];

        if (congChuan.anMa(mx, my) == false)
        {
            return;
        }
        
        if (congChuan.nengLin(mx, my) == false)
        {
            return;
        }
        
        linChuan = congChuan.linChu(mx, my);
    }

    public void tuoCaoZuo(int mx, int my)
    {
        if(linChuan != null) {
            linChuan.dong(mx, my);
        }
    }

    public void fangCaoZuo(int mx, int my)
    {
        daoChuan = chuans[mx/100];
        if(linChuan == null) {
            return;
        }
        if(daoChuan.anMa(mx, my) && daoChuan.nengHeBing(linChuan)) {
            daoChuan.heBing(linChuan);
            congChuan.fanMoZhang();
            if(daoChuan.nengXiao()) {
                daoChuan.xiao13();
                if(yingLeMa) {
                    System.out.println("赢了!");
                }
                daoChuan.fanMoZhang();
            }
        }
        else {
            congChuan.heBing(linChuan);
        }
    }
    private boolean yingLeMa() {
        if(fu.list.size()!=0) {
            return false;
        }
        for(int i = 0;i<10;i++) {
            if(chuans[i].list.size()!=0) {
                return false;
            }
        }
        return false;
    }

}


运行结果及报错内容
Exception in thread "main" java.lang.NullPointerException
    at turing.KongZhi.chuShiHua(KongZhi.java:35)
    at turing.ChuangKou.<init>(ChuangKou.java:20)
    at turing.ChuangKou.main(ChuangKou.java:131)

怎么样修改才没有错误呀.

暴空指针,debug看一下 或者把方法贴出来SL给我

img