第一步:新建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. mfc CIPAddressCtrl控件

    知识点: CIPAddressCtrl 属性 CIPAddressCtrl 成员函数 成员函数代码测试 一.CIPAddressCtrl Class Members IsBlank Determine ...

  2. libgdx学习记录24——九宫格NinePatch

    NinePatch用于图片纹理拉伸显示.当图片拉伸时,4个角不会拉伸,而只有中间的部分会拉伸,适合做圆角矩形类的Button. 简单示例: package com.fxb.newtest; impor ...

  3. [CF1065F]Up and Down the Tree[树dp]

    题意 给定一棵以 \(1\) 为根的树,你每次可以选择跳到某个叶子节点,再跳到和他深度差不超过 \(k\) 的祖先.询问最多能够跳到多少个叶子节点. \(n,k\leq 10^6\) . 分析 最后的 ...

  4. Error:Could not find common.jar (android.arch.core:common:1.0.0)

    Error:Could not find common.jar (android.arch.core:common:1.0.0). Searched in the following location ...

  5. SpringBoot日记——缓存的使用

    SpringBoot核心技术的东西基本上都有介绍过了,接下来,进阶点~来说说缓存吧~ 缓存这个词不少同学应该不会很陌生.而我们这里主要使用的就是Redis. 客户端第一次请求的时候是从库里拿出我们需要 ...

  6. Linux内核分析第一二章读书笔记

    linux读书笔记(1,2章) 标签(空格分隔): 20135328陈都 第一章 Linux内核简介 Unix的历史 Unix 虽然已经使用了40年,但计算机科学家仍然认为它是现存操作系统中最强大和最 ...

  7. 重温servlet③

    请求转发 forward 仅有一个请求 至少两个servlet 前一个的响应头保留着,但是响应体不保留了. 设置响应体太大,会报错   请求包含Include 都包含,响应头和响应体都会保留着   R ...

  8. Linux命令(二十二) 改变文件权限 chomd

    目录 1.命令简介 2.常用参数介绍 3.实例 4.直达底部 命令简介 chmod 命令是用来改变文件权限或目录的命令,可以将指定文件的拥有着改为指定的用户或组,用户可以是用户名或用户ID,组可以是组 ...

  9. Linux命令(二十六) 用户管理命令

    一.添加用户 useradd useradd 命令用于创建新用户,格式为useradd [选项] 用户名. 可以使用 useradd 命令创建用户帐户,使用该命令创建账户时,默认的用户目录在 /hom ...

  10. Jquery 获取屏幕及滑块及元素的高度及距离

    alert($(window).height()); //浏览器时下窗口可视区域高度 alert($(document).height()); //浏览器时下窗口文档的高度 alert($(docum ...