我已经成功地使用彩色面板将棋盘放在一起,但前提是用户要为行和列输入奇数。否则,当输入偶数时,它只会显示交替的彩色列。我正在努力弄清楚如何编写一个短段,通过使用 %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/