700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 打印国际象棋棋盘

打印国际象棋棋盘

时间:2024-02-18 06:57:28

相关推荐

打印国际象棋棋盘

1.问题描述

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

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)窗口属性设置

窗口属性设置包括窗口大小、位置等设置,其中窗口大小要满足能够容纳黑白方格,这里指定黑白方格大小为:,那么窗口属性大小大概为: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,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)); //设置边界为黑色f.add(l);//添加标签}}f.setVisible(true);//显示窗口}}

(5)运行结果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。