求一个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》);
}
/**
* *线程方法控制棋子的闪烁
*/
}