[2].[代码] [Java]代码
package Gomoku;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.awt.image.BufferedImageFilter;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class OperatorPane extends JPanel implements MouseListener,Runnable
{
//定义背景图片对象
Image imageBackground = null;
//定义棋盘的格子的行数
int boardrows=18;
//定义棋盘的格子的列数
int boardcols=18;
//定义棋盘的格子的大小
int boardsize=20;
//保存棋子坐标
int x=0,y=0;
//保存之前下过的全部棋子坐标
// 其中数据内容 0: 表示这个点并没有棋子, 1: 表示这个点是黑子, 2:表示这个点是白子
int allchess[][]=new int [19][19];
//标记下一步下黑棋还是白棋
boolean isBlack=true;
//判断游戏是否能够继续
boolean canPlay=true;
//保存显示信息
String message="黑方先行";
// 保存最多拥有多少时间(秒)
int maxTime = 0;
// 做倒计时的线程类
Thread t = new Thread(this);
// 保存黑方与白方的剩余时间
int blackTime = 0;
int whiteTime = 0;
// 保存双方剩余时间的显示信息
String blackMessage = "无限制";
String whiteMessage = "无限制";
@SuppressWarnings("deprecation")
public OperatorPane()
{
t.start();
t.suspend();
imageBackground=new ImageIcon("image/background.jpg").getImage();
}
public void paint(Graphics g)
{
//双缓冲技术
BufferedImage b1=new BufferedImage(495,475,BufferedImage.TYPE_INT_ARGB);
Graphics g2=b1.createGraphics();
// 画出背景图片
g2.drawImage(imageBackground, 0, 0,495,475,null);
//画出棋盘线
Color c=g2.getColor();
g2.setColor(Color.BLACK);
for(int i=0;i<=boardrows;i++)
{
g2.drawLine(10,50+boardsize*i,10+boardsize*boardrows,50+boardsize*i);
}
for(int i=0;i<=boardcols;i++)
{
g2.drawLine(10+boardsize*i,50,10+boardsize*i,50+boardsize*boardcols);
}
//画出三三位置
g2.fillOval(67, 107, 6, 6);
g2.fillOval(67, 347, 6, 6);
g2.fillOval(307, 107, 6, 6);
g2.fillOval(307, 347, 6, 6);
//画出附点
g2.fillOval(67, 227, 6, 6);
g2.fillOval(307, 227, 6, 6);
g2.fillOval(187, 107, 6, 6);
g2.fillOval(187, 347, 6, 6);
//画出天元
g2.fillOval(187, 227, 6, 6);
//画出文字提示
/*Font f=new Font("黑体", Font.BOLD, 24);
g.setFont(f);*/
g2.setFont(new Font("黑体", Font.BOLD, 20));
g2.setColor(Color.BLACK);
g2.drawString("游戏信息:"+message, 130, 40);
g2.setFont(new Font("宋体", Font.ITALIC, 15));
g2.drawString("黑方时间:"+blackMessage,25, 445);
g2.drawString("白方时间:"+whiteMessage,245, 445);
//绘制全部棋子
for(int i