第一步:新建java项目,具体的命名,看下面的文件结构。

第二步:代码区

DrawChessBoard类:

 package com.hp.chenyanlong;

 import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit; import javax.swing.JPanel; /**
* 类说明 :DrawChessBoard 类
* @author 作者 : chenyanlong
* @version 创建时间:2017年10月27日
*/
public class DrawChessBoard extends JPanel { public Image boardImg;//抽象类 Image 是表示图形图像的所有类的超类。 //载入图片
public DrawChessBoard() { boardImg = Toolkit.getDefaultToolkit().getImage("res/drawable/chessboard.png");//获取图片
if (boardImg == null) {
System.out.println("png do not exit");
}
} //重写
@Override
protected void paintComponent(Graphics g){ super.paintComponent(g); int imgWidth=boardImg.getWidth(this);//图片的宽度
int imgHeight=boardImg.getHeight(this);//图片的高度 int FWidth=getWidth();//容器的宽度
int FHeight=getHeight();//容器的高度 int x=(FWidth-imgWidth)/2;
int y=(FHeight-imgHeight)/2;
g.drawImage(boardImg,x,y,null);//画出图片
}
}

Main类:

 package com.hp.chenyanlong;
import java.awt.Container;
import javax.swing.JFrame; import com.hp.chenyanlong.DrawChessBoard;
/**
* 类说明 :Main
* @author 作者 : chenyanlong
* @version 创建时间:2017年10月27日
*/
public class Main extends JFrame { private DrawChessBoard drawChessBoard;//设置私有话drawChessBoard //构造方法
public Main() {
//实例化对象DrawChessBoard
drawChessBoard = new DrawChessBoard(); //Frame标题
setTitle("五子棋--@yanlong"); //加入到容器中
Container containerPane =getContentPane();
containerPane.add(drawChessBoard); //将drawChessBoard组件添加到容器
} //主方法
public static void main(String[] args) {
Main m = new Main();
m.setVisible(true);
} }

第三步:运行效果

第四步:为棋盘画上横竖线

重新写了DrawChessBoard代码:

 package com.hp.chenyanlong;

 import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit; import javax.swing.JPanel; /**
* 类说明 :DrawChessBoard 类
* @author 作者 : chenyanlong
* @version 创建时间:2017年10月27日
*/
public class DrawChessBoard extends JPanel { public Image boardImg;//抽象类 Image 是表示图形图像的所有类的超类。
final private int ROWS=19;//设置19行 //载入图片
public DrawChessBoard() { boardImg = Toolkit.getDefaultToolkit().getImage("res/drawable/chessboard.png");//获取图片
if (boardImg == null) {
System.out.println("png do not exit");
}
} //重写
@Override
protected void paintComponent(Graphics g){ super.paintComponent(g); int imgWidth=boardImg.getWidth(this);//图片的宽度
int imgHeight=boardImg.getHeight(this);//图片的高度 int FWidth=getWidth();//容器的宽度
int FHeight=getHeight();//容器的高度 int x=(FWidth-imgWidth)/2;
int y=(FHeight-imgHeight)/2;
g.drawImage(boardImg,x,y,null);//画出图片 int margin=x;
int span_x=imgWidth/ROWS;//单元格的宽度
int span_y=imgHeight/ROWS;//单元格的高度
//画横线
for(int i=0;i<ROWS;i++){
g.drawLine(x, y+i*span_y,FWidth-x,y+i*span_y);
}
//画竖线
for(int i=0;i<ROWS;i++)
{
g.drawLine(x+i*span_x, y, x+i*span_x,FHeight-y);
}
}
}

第五步:运行效果

java生成棋盘的更多相关文章

  1. 设计一个自动生成棋盘格子的JS小程序

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. Java生成和操作Excel文件(转载)

    Java生成和操作Excel文件   JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该A ...

  3. 利用JAVA生成二维码

    本文章整理于慕课网的学习视频<JAVA生成二维码>,如果想看视频内容请移步慕课网. 维基百科上对于二维码的解释. 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图 ...

  4. Java生成验证码原理(jsp)

     验证码的作用: 验证码是Completely Automated Public Turing test to tell Computers and Humans Apart(全自动区分计算机和人类的 ...

  5. JAVA生成条形码

    1.下载生成条形码所需要的jar包barcode4j.jar: 2.java生成条形码代码 import java.awt.image.BufferedImage;import java.io.Fil ...

  6. Java生成CSV文件实例详解

    本文实例主要讲述了Java生成CSV文件的方法,具体实现步骤如下: 1.新建CSVUtils.java文件: package com.saicfc.pmpf.internal.manage.utils ...

  7. java 生成8位数字作为UID

    java 生成8位数字作为UUID: /*** * 生成uid 8位数字 */public static String generateUID(){ Random random = new Rando ...

  8. java生成随机序列号

    1.java生成随机序列号 String deleteUuid = UUID.randomUUID().toString(); 引用Jar包 //java-uuid-generator-3.1.3.j ...

  9. java生成简单Excel工作薄

    前言: 代码都是建立在实际需求上的,上周做完一个调外部电影券接口的项目,这周产品又要excel表格,大致内容为:券所属影院.图片URL.等信息制作为excel表格,把每次同步过来的数据给他分析. jx ...

随机推荐

  1. python 回溯法 子集树模板 系列 —— 6、排课问题

    问题 某乡村小学有六个年级,每个年级有一个班,共六个班. 周一到周五,每天上6节课,共计30节课. 开设的课程 一年级:语(9)数(9)书(2)体(2)美(2)音(2)德(2)班(1)安(1) 二年级 ...

  2. Scala学习(二)练习

    Scala控制结构和函数&练习 1. 一个数字如果为正数,则它的signum为1:如果是负数,则signum为-1:如果为0,则signum为0:编写一个函数来计算这个值 简单逻辑判断: 测试 ...

  3. JavaScript 变量提升

    变量提升(Hoisting):在ES6之前,函数声明和变量声明总是被JavaScript解释器隐式地提升(hoist)到包含他们的作用域的最顶端. 注意: 1. JavaScript 仅提升声明,而不 ...

  4. Spring Boot(十一):Spring Boot 中 MongoDB 的使用

    MongoDB 是最早热门非关系数据库的之一,使用也比较普遍,一般会用做离线数据分析来使用,放到内网的居多.由于很多公司使用了云服务,服务器默认都开放了外网地址,导致前一阵子大批 MongoDB 因配 ...

  5. 配置LNPM

    在 Ubuntu 系统中,可以使用 apt-get 命令来搭建 LNMP环境.这种方式较编译方式安装更加简便,因此选择使用该方式来搭建环境以供学习. 安装Nginx 使用 sudo apt-get i ...

  6. 【开源.NET】 轻量级内容管理框架Grissom.CMS(第二篇前后端交互数据结构分析)

    这是 CMS 框架系列文章的第二篇,第一篇开源了该框架的代码和简要介绍了框架的目的.作用和思想,这篇主要解析如何把sql 转成标准 xml 配置文件和把前端post的增删改数据规范成方便后台解析的结构 ...

  7. zabbix监控docker容器状态

    前言:前段时间在部署zabbix,有个需求就是需要监控容器的状态 也就是cpu 内存 io的占用,于是就自己写了一个脚本,以及模板,在这里分享一下 嘿嘿 : ) 废话我也就不多说,直接开始 首选,za ...

  8. [git hooks] pre-commit 配置

    在开发过程中,通常使用 eslint 来规范团队的代码风格.但是 eslint 只能在开发服务器启动的时候才去检验代码.如果一个人在不启动开发服务器的情况下,修改了代码直接提交到git,那么别人pul ...

  9. Json To CSharp

    This is a tools for generate json reader classes. In some case, when we get a json data, we hope to ...

  10. Docker-安装(CentOS7)

    1.安装需要的软件包:yum-util提供yum-config-manager功能 yum install -y yum-utils device-mapper-persistent-data lvm ...