Примечание: этот вопрос может немного похож на другой, который я опубликовал несколько недель назад. В то время я не работал с добавлением кнопок в виде массивов, вот что мешает мне на этот раз.Изменение цвета элементов GridLayout
Я работаю с шахматной доской, и я смог самостоятельно создать доску из 64 квадратов. Однако мне кажется слишком сложным управлять добавлением цветов в квадраты.
Мой код выглядит следующим образом:
Chess.java
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Chess implements config {
public static void main(String[] args) {
int[] squareArray;
squareArray = new int[65];
int i = 1;
JFrame frame = new JFrame("Chessboard");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new GridLayout(ROWS, COLS, 2, 2));
for (i = 1; i < 65; i++) {
squareArray[i] = i;
frame.add(new JButton("" + squareArray[i]));
}
frame.setSize(800, 800);
frame.setVisible(true);
}
}
Piece.java
import java.awt.Color;
import javax.swing.JFrame;
public class Piece extends JFrame implements config {
public Piece (int n) {
setBackground(calcColor(n));
}
public void Pieces() {
new Pieces();
//This class contains nothing at the moment.
}
Color calcColor(int n) {
boolean everysecondSquare = (n % 2 == 0);
boolean everysecondRow = ((n/ROWS) % 2 == 0);
return (everysecondSquare != everysecondRow ? P1Color : P2Color);
}
}
config.java
import java.awt.Color;
public interface config {
public int ROWS = 8;
public int COLS = 8;
Color P1Color = (new Color(245,222,179));
Color P2Color = (new Color(244,164,96));
}
Я прекрасно понимаю, что это, вероятно, очень плохо кодируется, поскольку я очень новичок в Java. Я был бы очень доволен и благодарен, если бы кто-то помог мне с цветами здесь, поскольку я застрял уже несколько дней, не получив дальнейших усилий. Я не ожидаю, что кто-то закончит код для меня, а просто поможет мне на пути туда добраться. :)
Смотрите также этот пример [] (http://stackoverflow.com/a/2562685/230513) и [изменение] (http://stackoverflow.com/a/2563350/230513). – trashgod