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给我