棋盘模块:

画五子棋棋盘:19条横线、19条竖线

步骤一:显示棋盘

我有一张名为chessboard.png的棋盘,位置为根目录/res/drawable/chessboard/png,现在我要显示这张图片。

DrawChessBoard.java

package xchen.test.simpleGobang;import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;import javax.swing.JPanel;
public class DrawChessBoard extends JPanel{public Image boardImg;public DrawChessBoard() {boardImg = Toolkit.getDefaultToolkit().getImage("res/drawable/chessboard.png");if(boardImg == null)System.err.println("png do not exist");}    @Overrideprotected void paintComponent(Graphics g) {// TODO Auto-generated method stubsuper.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.java

package xchen.test.simpleGobang;import java.awt.Container;
import javax.swing.JFrame;import xchen.test.simpleGobang.DrawChessBoard;public class Main extends JFrame{private DrawChessBoard drawChessBoard;public Main() {      drawChessBoard = new DrawChessBoard();//Frame标题setTitle("单机五子棋");Container containerPane =getContentPane();containerPane.add(drawChessBoard);       }public static void main(String[] args) {Main m = new Main();m.setVisible(true);}
}

运行一下

步骤二:为棋盘画上横竖线

DrawChessBoard.java

package xchen.test.simpleGobang;import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;import javax.swing.JPanel;
public class DrawChessBoard extends JPanel{public Image boardImg;final private int ROWS = 19;public DrawChessBoard() {boardImg = Toolkit.getDefaultToolkit().getImage("res/drawable/chessboard2.png");if(boardImg == null)System.err.println("png do not exist");}  @Overrideprotected void paintComponent(Graphics g) {// TODO Auto-generated method stubsuper.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);}}
}

Main.java不变

运行一下

遇到的问题:

1)Eclipse不识别文件夹下的图片

问题:文件夹中有图片,但是在Eclipse项目栏中不显示

解决办法:在Eclipse中,选中根目录,F5 refresh,就显示出来了。

Java实现一个简单的两人五子棋游戏(二) 画棋盘相关推荐

  1. java五子棋盘_Java实现一个简单的两人五子棋游戏(二) 画棋盘

    棋盘模块: 画五子棋棋盘:19条横线.19条竖线 步骤一:显示棋盘 我有一张名为chessboard.png的棋盘,位置为根目录/res/drawable/chessboard/png,现在我要显示这 ...

  2. Java实现一个简单的两人五子棋游戏(一) 系统设计

    实现一个基本的单机五子棋功能 该五子棋棋盘大小为19*19的网格,玩家可以通过鼠标点击棋盘来落子,当出现五连珠时,提示一方胜出~ 1)模块划分 主模块:调用其他模块实现五子棋功能 棋盘模块:绘制五子棋 ...

  3. Java实现一个简单的两人五子棋游戏(六) 行棋方变换

    1)选择棋子 ✔️ 2)画棋子 ✔️ 3)判断胜负 ✔️ 4)交换行棋方 目标 前面我们已经画好棋盘和棋子,并可以自由落子,且可以判断棋盘中是否有五连珠.接下来的工作是,每次落子后交换行棋方(即将下一 ...

  4. java画五子棋盘_Java实现两人五子棋游戏(二) 画出棋盘

    本文为大家分享了java画出五子棋游戏棋盘的方法,供大家参考,具体内容如下 棋盘模块: 画五子棋棋盘:19条横线.19条竖线 步骤一:显示棋盘 我有一张名为chessboard.png的棋盘,位置为根 ...

  5. java五子棋棋盘_Java实现两人五子棋游戏(二) 画出棋盘

    此文为大家分享了java画出五子棋游戏棋盘的方法,供大家参考,具体内容如下 棋盘模块: 画五子棋棋盘:19条横线.19条竖线 步骤一:显示棋盘 我有一张名为chessboard.png的棋盘,位置为根 ...

  6. 如何用java编写一个简单的多人PK游戏

    如何用java编写一个简单的多人PK游戏 类与对象---PK游戏的编写 素材取用----王者荣耀和BILIBILI 创建两个对战的角色(PK游戏最少需要两名角色) 创建孙尚香和Van 设置孙尚香和Va ...

  7. 无聊的时候怎么办?教你用java写一个简单挂机打金币小游戏吧!

    无聊的时候怎么办?教你用java写一个超简单挂机打金币小游戏吧! Java写一个挂机打金币程序 1.Java的面向对象 2.基础打金的分析 3. Robot介绍以及Demo演示 4.挂机打金程序如何去 ...

  8. java五子棋实验报告6_Java实现两人五子棋游戏(六) 行棋方变换

    前面我们已经画好棋盘和棋子,并可以自由落子,且可以判断棋盘中是否有五连珠.接下来的工作是,每次落子后交换行棋方(即将下一棋子颜色由白->黑或黑->白),并将胜出判断增加颜色判断条件(棋盘上 ...

  9. 如何用Java设计一个简单的窗口界面(初级二)

    如何添加组件 一.准备 1.这里介绍的是eclipse 2.常用组件的了解 3.常用布局 1.BorderLayout 布局 2.FlowLayout 布局 二.代码 1.简单的 2.构造中间容器,顺 ...

  10. 如何利用JAVA编写一个简单的石头剪刀布的小游戏

    楼主为了完成作业,花了一小会时间自己琢磨了一下,写出了这个石头剪刀布的小游戏. 思路很简单,就是令石头=2,剪刀=1,布=0,那么电脑随机生成一个数,分别去对应,游戏者同时也输入一个数字,也是对应着前 ...

最新文章

  1. 阿里1688直播推荐算法实践
  2. 开源是互联网发展的核动力
  3. poj 3308(最小割求解最小点权覆盖)
  4. MongoDB学习笔记——数据库安装及配置
  5. 过滤器、拦截器、监听器的区别与使用
  6. mysql集群跨地域同步部署_跨地域冗余 - 跨数据中心部署方案 - 《TiDB v2.1 用户文档》 - 书栈网 · BookStack...
  7. redis将散裂中某个值自增_0基础掌握Django框架(49)Redis
  8. gym 101657 D
  9. android布局错,Android Studio布局错误
  10. 不存在理想中的那种单元测试
  11. echarts实现平面3D柱状图
  12. 人工智能 一种现代方法 第6章 约束满足问题
  13. 离散数学及其应用(一)
  14. 新广告法违规词、敏感词在线检测工具 淘宝违规词检测、查询
  15. 谢国忠:2012年股市、楼市泡沫终将破灭
  16. 微软office办公系列软件的具体用处及办公作用说明指南
  17. 比我的脸还干的gan货——Python Flask Web 框架入门
  18. Linux最全面试题100问答,纯纯爽文
  19. 如何调整图片像素大小
  20. 地铁自动驾驶模型,地铁列车牵引系统整车模型。

热门文章

  1. 未来时速——第一章 用事实的力量管理企业
  2. 大一微积分笔记整理_大一上学期微积分高数复习要点
  3. 如何在移动端转换CAD图纸?
  4. Total Commander(转.from 善用佳软/TC学堂 - xbeta,2007-2009 )
  5. 计算机科技的主题,科技感十足的电脑桌面,私藏多年,60多个主题和皮肤统统给大家...
  6. ZigBee(CC2530)(03)数据手册分享(英文+中文)
  7. MATLAB数字图像处理 实验一:图像处理基本操作(平移、放大、缩小、旋转、插值)
  8. 【效率提高10倍项目原创发布!】深度学习数据自动标注器开源 目标检测和图像分类(高精度高效率)
  9. 金蝶K3供应链-采购系统选项功能描述
  10. 安卓设计模式のAdapter模式