Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java checkerboard, odd/even % 2 panel

Tags:

java

I have successfully got a checkerboard to be put together using colored panels, but only when the user will input odd numbers for the rows and columns. Otherwise when inputing even numbers it just shows alternating colored columns. I'm struggling to figure out how to write a short segment that checks to see if it's odd or even by using the %2=0, with the result of even changing the color. Below is my code. Thanks, and take it easy on me I'm very new to programming! :-)

Also, I've created a separate ColorPanel class to build the colored panel, and then pull into into my main program. I didn't bother putting that code below.

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);
}
}
like image 424
izzyfanto Avatar asked Apr 21 '26 22:04

izzyfanto


1 Answers

Change your loop to:

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;
        }

        ...

    }
}
like image 197
Jason Avatar answered Apr 24 '26 10:04

Jason



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!