import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class FiveChessFrame extends JFrame implements Runnable,MouseListener{
/**
*
*/
private static final long serialVersionUID = 1L;
//游戏界面大小
int width=Toolkit.getDefaultToolkit().getScreenSize().width;
int height=Toolkit.getDefaultToolkit().getScreenSize().height;
int x,y; //鼠标坐标
int[][]allChess=new int[15][15]; //保存棋盘,0表示无子,1表示黑子,2表示白字
Boolean isblack=true; //当前下子是黑子还是白字,true代表黑子,false代表白子
Boolean canPlay=true; //标始当前游戏是否结束
String message="黑方先行";
String blackMessage="无限制";
String whiteMessage="无限制";
//保存棋谱,记录双方每一步落子的位置
int[]chessX=new int[255];
int[]chessY=new int[255];
int countX,countY;
//默认设置无时间限制
int maxTime=0; //保存最大时间
int blackTime=0;
int whiteTime=0; //保存黑白方所剩余的时间
Thread timer=new Thread(this);
public FiveChessFrame(){
this.setTitle("五子棋游戏");
this.setSize(500, 500);
this.setLocation((width - 500) / 2, (height - 500) / 2);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.repaint();
this.addMouseListener(this);
timer.start(); //开启计时线程
timer.suspend();
}
//画棋盘界面
public void paint(Graphics g){
//双缓冲技术
BufferedImage buf=new BufferedImage(500,500,BufferedImage.TYPE_INT_RGB);
Graphics g1=buf.createGraphics(); //创建画笔
g1.setColor(new Color(0,169,158)); //设置画笔颜色
g1.fill3DRect(43,60,375,375,true);
for(int i=0;i<=15;i++){
g1.setColor(Color.WHITE);
g1.drawLine(43,60+i*25,375+43,60+i*25);//画棋盘横线
g1.drawLine(43+i*25,60,43+i*25,375+60); //画棋盘竖线
}
g1.setFont(new Font("黑体",Font.BOLD,20));
g1.drawString("游戏信息: "+message,50,50);
g1.drawRect(30,440,180,40);
g1.drawRect(250,440,180,40); //画黑方时间与白方时间字符串的边框
g1.setFont(new Font("宋体",0,12));
g1.drawString("黑方时间: "+blackMessage,40,465);
g1.drawString("白方时间: "+whiteMessage,260,465);