簡體   English   中英

更改GridLayout元素的顏色

[英]Changing colors of GridLayout elements

注意:這個問題可能看起來像幾周前我發布的另一個問題。 那時我還沒有將按鈕添加為數組,這使我這次變得更加困難。

我正在玩國際象棋游戲,我已經能夠自己建立一個由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還是很陌生。 如果有人可以幫助我解決這里的顏色,我將感到非常高興和感激,因為我已經被困了好幾天了而已。 我不希望有人為我完成代碼,而只是幫助我到達那里。 :)

那這個呢?

for (i = 1; i < 65; i++) {
    squareArray[i] = i;

    JButton b=new JButton("" + squareArray[i]);
    b.setBackground(desiredColorHere);
    frame.add(b);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM