求一个java象棋小程序的短代码

这个程序还需要一个关联的文件夹“图像”。棋子图片的代码如下:(代码太长,我会用邮件发给你)

导入Java . awt . *;

导入Java . awt . event . *;

导入javax . swing . *;

导入Java . util . *;

导入Java . io . *;

//主类

公共级国际象棋{

公共静态void main(String args[]){

New ChessMainFrame(《中国象棋:一言不发看盘棋,真君子,死而无憾》);

}

}

//主框架类

类ChessMainFrame扩展JFrame实现ActionListener、MouseListener、Runnable{

//播放器

JLabel play[]= new JLabel[32];

//棋盘

JLabel图像;

//窗格

集装箱骗局;

//工具栏

JToolBar jmain

//重新开始

JButton anew

//后悔棋

JButton忏悔;

//退出

JButton退出;

//当前信息

JLabel文本;

//保存当前操作

向量Var

//规则类对象(调用方法)

ChessRule规则;

/**

* *单击棋子。

** chessManClick = true闪烁棋子并响应线程。

** chessManClick = false停止闪烁,给线程一个响应。

*/

布尔chessManClick

/**

* *控制玩家走棋。

** chessPlayClick=1黑棋走法。

** chessPlayClick=2红色国际象棋是默认的红色国际象棋。

** chessPlayClick=3双方都不会下棋。

*/

int ches play click = 2;

//控制棋子闪烁的线程

线程tmain

//通过第一次单击棋子给线程一个响应

静态int Man,I;

chesmainframe(){

新ChessMainFrame(“中国象棋”);

}

/**

* *构造者

* *初始化图形用户界面

*/

ChessMainFrame(字符串标题){

//银行客案报价

con = this . getcontentpane();

con.setLayout(空);

//实例化规则类

rule = new chess rule();

var = new Vector();

//创建工具栏

jmain = new JToolBar();

Text = new JLabel("欢迎来到象棋系统");

//当鼠标放在显示屏上时显示信息。

Text.setToolTipText("信息提示");

anew = new JButton(" new tour ");

Anew.setToolTipText("开始新游戏");

exit = new JButton(" exit ");

Exit.setToolTipText("退出象棋程序");

忏悔=新JButton(“后悔棋”);

Repent.setToolTipText("回到最后一个棋位");

//将组件添加到工具栏

jmain . set layout(new GridLayout(0,4));

jmain . add(new);

jmain.add(忏悔);

jmain.add(退出);

jmain.add(文本);

jmain.setBounds(0,0,558,30);

con . add(jmain);

//添加棋子标签

draw chessman();

//注册按钮监控

anew . addactionlistener(this);

reveal . addactionlistener(this);

exit . addactionlistener(this);

//注册棋子移动监控

for(int I = 0;我& lt32;i++){

con . add(play[I]);

玩[我]。addmouse listener(this);

}

//添加棋盘标签

con . add(image = new JLabel(new image icon(" image \ \ Main。GIF "))));

image.setBounds(0,30,558,620);

image . addmouse listener(this);

//注册窗体以关闭侦听

this.addWindowListener(

新建WindowAdapter() {

public void window closing(window event we){

system . exit(0);

}

}

);

//表单居中

dimension screenSize = toolkit . getdefaulttoolkit()。getScreenSize();

dimension frameSize = this . getsize();

if(framesize . height & gt;screenSize.height){

framesize . height = screensize . height;

}

if(framesize . width & gt;screenSize.width){

framesize . width = screensize . width;

}

this . set location((screensize . width-framesize . width)/2-280,(screensize . height-framesize . height)/2-350);

//设置

This.seticon image(新图像图标(" image \ \ red general。GIF”)。getImage());

this . setresizable(false);

this.setTitle(标题);

this.setSize(558,670);

this . show();

}

/**

* *添加棋子的方法

*/

public void drawChessMan(){

//过程控制

int i,k;

//图标

图标在;

//黑色棋子

//汽车

in = new image icon(" image \ \ black car . gif ");

for (i=0,k = 24我& lt2;i++,k+=456){

play[I]= new JLabel(in);

玩[我]。setBounds(k,56,55,55);

玩[我]。set name(" car 1 ");

}

//马

in = new image icon(" image \ \ dark horse . gif ");

for (i=4,k = 81;我& lt6;i++,k+=342){

play[I]= new JLabel(in);

玩[我]。setBounds(k,56,55,55);

玩[我]。setName(" Ma 1 ");

}

//相位

in = new image icon(" image \ \ black image。GIF”);

for (i=8,k = 138;我& lt10;i++,k+=228){

play[I]= new JLabel(in);

玩[我]。setBounds(k,56,55,55);

玩[我]。setName(" like 1 ");

}

//石

in = new image icon(" image \ \ heshi . gif ");

for (i=12,k = 195;我& lt14;i++,k+=114){

play[I]= new JLabel(in);

玩[我]。setBounds(k,56,55,55);

玩[我]。setName(" Shi 1 ");

}

//卒

in = new image icon(" image \ \ black pawn . gif ");

for (i=16,k = 24我& lt21;i++,k+=114){

play[I]= new JLabel(in);

玩[我]。setBounds(k,227,55,55);

玩[我]。setName("卒1 "+I);

}

//枪

in = new ImageIcon(" image \ \ black gun . gif ");

for (i=26,k = 81;我& lt28;i++,k+=342){

play[I]= new JLabel(in);

玩[我]。setBounds(k,170,55,55);

玩[我]。set name(" cannon 1 "+I);

}

//将

in = new image icon(" image \ \ black general。GIF”);

play[30]= new JLabel(in);

玩【30】。setBounds(252,56,55,55);

玩【30】。setName("将是1 ");

//红色棋子

//汽车

in = new image icon(" image \ \ red car . gif ");

for (i=2,k = 24我& lt4;i++,k+=456){

play[I]= new JLabel(in);

玩[我]。setBounds(k,569,55,55);

玩[我]。setName("汽车2 ");

}

//马

in = new image icon(" image \ \ red horse . gif ");

for (i=6,k = 81;我& lt8;i++,k+=342){

play[I]= new JLabel(in);

玩[我]。setBounds(k,569,55,55);

玩[我]。setName(" Ma 2 ");

}

//相位

In =新图像图标("图像\\红色图像。GIF”);

for (i=10,k = 138;我& lt12;i++,k+=228){

play[I]= new JLabel(in);

玩[我]。setBounds(k,569,55,55);

玩[我]。setName("大象2 ");

}

//石

in = new image icon(" image \ \ hong Shi . gif ");

for (i=14,k = 195;我& lt16;i++,k+=114){

play[I]= new JLabel(in);

玩[我]。setBounds(k,569,55,55);

玩[我]。setName("石2 ");

}

//士兵

in = new image icon(" image \ \ red pawn . gif ");

for (i=21,k = 24我& lt26;i++,k+=114){

play[I]= new JLabel(in);

玩[我]。setBounds(k,398,55,55);

玩[我]。setName("卒2 "+I);

}

//枪

in = new image icon(" image \ \ hong pao . gif ");

for (i=28,k = 81;我& lt30;i++,k+=342){

play[I]= new JLabel(in);

玩[我]。setBounds(k,455,55,55);

玩[我]。setName("大炮2 "+I);

}

//帅

in = new image icon(" image \ \ hongjiang . gif ");

play[31]= new JLabel(in);

播放[31]。setBounds(252,569,55,55);

播放[31]。setName(《帅2》);

}

/**

* *线程方法控制棋子的闪烁

*/

}