当前位置: 首页 > news >正文

国际象棋棋盘

1.问题描述

打印出国际象棋棋盘,如图所示。

                ​​​​​​​        

                                国际象棋棋盘

2.问题分析

观察国际象棋棋盘的图案,可以发现其中的规律:棋盘由八行八列黑白方块相间组成,可以用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方块还是白方块。这里我们使用了Swing的标签组件JLable,通过设置JLabel组件的背景色和透明度来实现黑白方块。

(1)确定程序框架

这是一个绘图案例,这里我们采用JFrame创建窗口,然后在窗口里添加JLabel标签组件,通过前面的问题分析可知,JLabel标签要设置一些属性实现黑白方块,然后显示窗口,实现如图1.14所示的效果。程序框架代码如下:

public class Ch1_6

{

public static void main(String[] args)

JFrame f=new JFrame(”国际象棋棋盘");

//窗口属性设置

         JLabel l = new JLabel(); //生成标签实例

    //标签属性设置

    f。add(l); //添加标签

    f。setVisible(true); //显示窗口

}

(2)窗口属性设置

窗口属性设置包括窗口大小、位置等设置,其中窗口大小要满足能够容纳黑白方格,这里指定黑白方格大小为:2020,那么窗口属性大小大概为:168195。窗口位置可以随便指定,这里指定为:(350,200)。程序代码如下:

//窗口设置大小

f.setSize(168,195);   //边框的长和宽

        

//窗口设置位置

Point point=new Point(350,200);

f。setLocation(point);ublic class Ch1_6

(3)标签属性设置

标签的属性主要是标签的位置及背景色,棋盘是由八行八列黑白方块相间组成,可以通过双重循环来实现,用i控制行,j来控制列,位置很容易设置,根据i+j的和的变化来设置背景色,表示黑方块还是白方块.程序代码如下:

int grids=8; //行数和列数

int gridsize=20; //单元格的高和宽

        

for(int i=0; i〈grids; i++)

for(int j=0; j〈grids; j++)

{

JLabel l = new JLabel(); //生成标签实例

l。setSize(gridsize,gridsize); //设置标签大小

l.setLocation(i*gridsize,j*gridsize); //设置标签位置

if((i+j)%2==0)

{    //当小方格的坐标和刚好是偶数时,

l.setBackground(Color。black);   //设置方格为黑色

l.setOpaque(true);    //设置为不透明

else

l.setBackground(Color。white);    //设置方格为白色

l。setOpaque(true);     //设置为不透明

l。setBorder(BorderFactory。createLineBorder(Color.black));  
//设置边界为黑色

……

}

(4)完整程序

现在我们就需要把刚才的程序进行组合,构成我们的完整程序:

import java。awt.Color;

import java。awt.Point;

import javax。swing.BorderFactory;

import javax.swing.JFrame;

import javax。swing.JLabel;

public class Ch1_6

public static void main(String[] args)

JFrame f=new JFrame(”国际象棋棋盘"); //创建窗口

//窗口设置大小

f.setSize(168,195);    //边框的长和宽

        

//窗口设置位置

    Point point=new Point(350,200);

    f。setLocation(point);

    

    int grids=8; //行数和列数

int gridsize=20; //单元格的高和宽

        

   for(int i=0; i<grids; i++) //外循环控制行

   {

   for(int j=0; j<grids; j++) //内循环控制列

   {

   JLabel l = new JLabel(); //生成标签实例

   l.setSize(gridsize,gridsize); //设置标签大小

   l。setLocation(i*gridsize,jgridsize); //设置标签位置

   if((i+j)%2==0)

   {     //当小方格的坐标和刚好是偶数时,

   l.setBackground(Color。black);    //设置方格为黑色

   l。setOpaque(true);   //设置为不透明

   }

   else

   {

l。setBackground(Color.white);    //设置方格为白色

l.setOpaque(true);   //设置为不透明

   }

l。setBorder(BorderFactory。createLineBorder(Color。black));   
//设置边界为黑色

f.add(l); //添加标签

   }

   }

   f.setVisible(true); //显示窗口

}

(5)运行结果

运行程序,结果如图所示。

        ​​​​​​​        ​​​​​​​                

                                         国际象棋棋盘


http://www.mrgr.cn/news/49800.html

相关文章:

  • 道路垃圾识别数据集 含pt模型界面 18类 共7542张图片,xml和txt标签都有;
  • 2024双十一买什么好?这些你绝对值得入手的好物推荐!
  • Harmony Navigation的使用
  • mysql-数据库的操作
  • Docker 命令替代(ctr和 crictl)
  • 【数据结构】图的最短路径
  • 【云原生】Kubernetes (K8s)
  • 板级支持包构建2
  • 现今 CSS3 最强二维布局系统 Grid 网格布局
  • uniapp uni.uploadFile errMsg: “uploadFile:fail
  • nginx配置多个SSL证书实操记录
  • 电动推杆与液压缸气缸的对比
  • static
  • 叉车超速熄火器 三级速度预警 促进厂区物流作业规范化管理
  • 商品详情 API 接口的调用次数是否有限制?
  • 【笔记】vue课堂小作业之书购物车列表的增删改查小记
  • HTML5实现古典音乐网站源码模板2
  • 数据结构实验十一 图的创建与存储
  • 电脑如何屏蔽网站?使用浏览器或者 Hosts 文件都可以
  • YOLO11改进|注意力机制篇|引入CoT注意力机制