Java 棋盘格,奇数/偶数 % 2 面板

标签 java

我已经成功地使用彩色面板将棋盘放在一起,但前提是用户要为行和列输入奇数。否则,当输入偶数时,它只会显示交替的彩色列。我正在努力弄清楚如何编写一个短段,通过使用 %2=0 检查它是奇数还是偶数,结果甚至改变了颜色。下面是我的代码。谢谢,请放轻松,我是编程新手! :-)

此外,我还创建了一个单独的 ColorPanel 类来构建彩色面板,然后将其拉入我的主程序。我没有费心把代码放在下面。

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

public class Checkerboard extends JPanel{

public static void main(String[] args) {
    JFrame chBoard = new JFrame();
    chBoard.setTitle("Checkerboard");
    chBoard.setSize(800,800);
    chBoard.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    String inputStr = JOptionPane.showInputDialog("Number of rows", "5");
    if (inputStr == null) return;
    int row = Integer.parseInt(inputStr);

    inputStr = JOptionPane.showInputDialog("Number of columns", "5");
    if (inputStr == null) return;
    int col = Integer.parseInt(inputStr);

    Container pane = chBoard.getContentPane();
    pane.setLayout(new GridLayout(row, col));

    Color BoxColor = Color.red;

    for ( int counter = 1;  counter <= row * col;  counter++ )
      {
        if (BoxColor == Color.red)
             BoxColor = Color.black;
        else
             BoxColor = Color.red;

        ColorPanel panel = new ColorPanel(BoxColor);
        pane.add(panel);
      }

    chBoard.setVisible(true);
}
}

最佳答案

将循环更改为:

for ( int x = 0;  x < row;  x++ ) {
    for(int y = 0; y < col; y++) {
        if((x + y)%2 == 0) {
            BoxColor = Color.red;
        } else {
            BoxColor = Color.black;
        }

        ...

    }
}

关于Java 棋盘格,奇数/偶数 % 2 面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35878833/

相关文章:

JAVA GC : ParNew (promotion failed) , 并发模式失败

java - Heroku - 我部署的 Spring MVC 项目不起作用

java - Spring MVC RestController 不明确的 PathVariable 映射

java - stdlib.jar 中已弃用的 java 类

VM Survivor Old Gen 中的 Java Survivor1、Survivor2

java - 无法将 Java 连接到外部 mysql 数据库

java - 如何按字典顺序对 ArrayList 进行排序?

java - 在 Java 中从 Parquet 文件中读取小数字段

java - 当Java8使用引用透明性时

java - SCP内存位置中的对象