java编程实现国际象棋棋盘

 更新时间:2019年05月23日 08:57:43   作者:ayangann915  
这篇文章主要为大家详细介绍了java编程实现国际象棋棋盘,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了java编程实现国际象棋棋盘的具体代码,供大家参考,具体内容如下

问题描述:

打印出国际象棋棋盘(黑白交错)

问题分析:

棋盘由八块黑白相间的方块组成,通过swing编程实现。其中用标签来实现方块,在方块中填充黑或白色。通过i,j来遍历行和列,以i和j的值来判断填充什么颜色

代码分析

import javax.swing.*;
import java.awt.*;

public class _2ChessBoard {
 public static void main(String[] args) {
 //新建窗口
 JFrame jFrame=new JFrame("国际象棋棋盘");
 //设置窗口的大小(八个格子,每个格子宽,高为20个像素)
 jFrame.setSize(160,160);
 //窗口的位置
 jFrame.setLocation(300,300);
 //格子的行数,列数
 int m=8;
 //格子的像素
 int n=20;
 for(int i=0;i<m;i++){
  for(int j=0;j<m;j++){
  //在每个位置添加标签
  JLabel jLabel=new JLabel();
  //标签的大小为格子的大小
  jLabel.setSize(n,n);
  //标签的位置为索引乘以格子的高度/宽度
  jLabel.setLocation(i*n,j*n);
  //放置黑色方块
  if((i+j)%2==0){
   jLabel.setBackground(Color.BLACK);
   //设置不透明度为不透明
   jLabel.setOpaque(true);
  }else{
  //放置白色方块
   jLabel.setBackground(Color.WHITE);
   jLabel.setOpaque(true);
  }
 //设置边界颜色  jLabel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
  jFrame.add(jLabel);
  }
 }
 //窗体设置可见
 jFrame.setVisible(true);
 //关闭退出
 jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }
}

完整代码

import javax.swing.*;
import java.awt.*;

public class _2ChessBoard {
 public static void main(String[] args) {
 JFrame jFrame=new JFrame("国际象棋棋盘");
 jFrame.setSize(160,160);
 jFrame.setLocation(300,300);
 int m=8;
 int n=20;
 for(int i=0;i<m;i++){
  for(int j=0;j<m;j++){
  JLabel jLabel=new JLabel();
  jLabel.setSize(n,n);
  jLabel.setLocation(i*n,j*n);
  if((i+j)%2==0){
   jLabel.setBackground(Color.BLACK);
   jLabel.setOpaque(true);
  }else{
   jLabel.setBackground(Color.WHITE);
   jLabel.setOpaque(true);
  }
  jLabel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
  jFrame.add(jLabel);
  }
 }
 jFrame.setVisible(true);
 jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java开发常见异常及解决办法详解

    Java开发常见异常及解决办法详解

    这篇文章主要介绍了java程序常见异常及处理汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-09-09
  • IntelliJ IDEA 设置代码提示或自动补全的快捷键功能

    IntelliJ IDEA 设置代码提示或自动补全的快捷键功能

    这篇文章主要介绍了IntelliJ IDEA 设置代码提示或自动补全的快捷键功能,需要的朋友可以参考下
    2018-03-03
  • SPRING FRAMEWORK BEAN作用域和生命周期原理解析

    SPRING FRAMEWORK BEAN作用域和生命周期原理解析

    这篇文章主要介绍了SPRING FRAMEWORK BEAN作用域和生命周期原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Java基于分治算法实现的线性时间选择操作示例

    Java基于分治算法实现的线性时间选择操作示例

    这篇文章主要介绍了Java基于分治算法实现的线性时间选择操作,涉及java排序、比较、计算等相关操作技巧,需要的朋友可以参考下
    2017-11-11
  • Spring如何基于Proxy及cglib实现动态代理

    Spring如何基于Proxy及cglib实现动态代理

    这篇文章主要介绍了Spring如何基于Proxy及cglib实现动态代理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 使用@PathVariable注解如何实现动态传值

    使用@PathVariable注解如何实现动态传值

    这篇文章主要介绍了使用@PathVariable注解如何实现动态传值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • Java中system.exit(0) 和 system.exit(1)区别

    Java中system.exit(0) 和 system.exit(1)区别

    本文主要介绍了Java中system.exit(0) 和 system.exit(1)区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • 一文详解java闭包的用途是什么

    一文详解java闭包的用途是什么

    闭包的价值在于可以作为函数对象或者匿名函数,持有上下文数据,作为第一级对象进行传递和保存,下面这篇文章主要给大家介绍了关于java闭包的用途是什么,需要的朋友可以参考下
    2024-03-03
  • @RequestParam 和@RequestBody注解的区别解析

    @RequestParam 和@RequestBody注解的区别解析

    在 Spring MVC 中,我们可以使用 @RequestParam 和 @RequestBody 来获取请求参数,但它们在用法和作用上有一些区别,这篇文章主要介绍了@RequestParam 和@RequestBody注解的区别,需要的朋友可以参考下
    2023-06-06
  • Java中lambda表达式的基本运用

    Java中lambda表达式的基本运用

    大家好,本篇文章主要讲的是Java中lambda表达式的基本运用,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01

最新评论