- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
运行效果如下图所示:
源代码如下(可以直接运行出结果) :
import java.awt.*;
import java.awt.eve nt.*;
import javax.swi ng.*;
import java.util.*;
import java.io.*;
//主类
public class Chess{
public static void main(String args[]){ new ChessMainFrame(中国象棋,博大精深 ”);
}
}
//主框架类
class ChessMa inF rame exte nds JFrame impleme nts Actio nListe ner,MouseListe ner,R unn able{
//玩家
JLabel play[] = new JLabel[32];
//棋盘
JLabel image;
//窗格
Container con;
//工具栏
JToolBar jmain;
//重新开始
JButt on an ew;
//悔棋
JButt on repe nt;
//退出
JButt on exit;
//当前信息
JLabel text;
〃保存当前操作
Vector Var;
//规则类对象(使于调用方法)
ChessRule rule;
**单击棋子
** chessMa nClick = true 闪烁棋子 并给线程响应
** chessManClick = false吃棋子 停止闪烁 并给线程响应
*/
boolea n chessMa nClick;
**控制玩家走棋
** chessPlayClick=1 黑棋走棋
** chessPlayClick=2红棋走棋默认红棋
** chessPlayClick=3双方都不能走棋
*/
int chessPlayClick=2;
//控制棋子闪烁的线程
Thread tma in;
//把第一次的单击棋子给线程响应
static int Man ,i;
ChessMai nF rame(){
new ChessMainFrame(中国象棋);
}
**构造函数
**初始化图形用户界面
*/
ChessMai nFrame(Stri ng Title){
//获行客格引用
con = this.getC onten tPa ne();
con. setLayout (n ull);
//实例化规则类
rule = new ChessRule();
Var = new Vector();
//创建工具栏
jmai n = new JToolBar();
text = new JLabel(欢迎使用象棋对弈系统 ”);
//当鼠标放上显示信息
text.setToolTipText(” 信息提示); anew = new JButton(” 新 游 戏”); an ew.setToolTipText(” 重新开始新的一局”); exit = new JButton(” 退 出”); exit.setToolTipText(”退出象棋程序程序 ”); repent = new JButton(” 悔 棋);
repe nt.setToolTipText(”返回到上次走棋的位置 );
//把组件添加到工具栏
jma in. setLayout (new GridLayout(0,4));
jma in. add(a new);
jma in. add(repe nt);
jmai n.add(exit);
jma in. add(text);
jmai n. setBou nds(0,0,558,30);
con. add(jma in);
//添加棋子标签
drawChessMa n();
//注册按扭监听
an ew.addActio nListe ner(this); repe nt.addAct ion Liste ner(this); exit.addAct ion Liste ner(this);
//注册棋子移动监听
for (int i=0;i32;i++){
con. add(play[i]);
}
}
play[i].addMouseListe ner(this);
//添加棋盘标签
con. add(image = new JLabel( new Imagelc on (imageWMa in. GIF)));
image.setBou nds(0,30,558,620);
image.addMouseListe ner(this);
//注册窗体关闭监听
this.addWi ndowListe ner(
new Win dowAdapter() {
public
文档评论(0)