如何在阵列中的另一个上直接添加JPanel?

时间:2013-05-04 14:27:58

标签: java swing jpanel

我正在尝试为我的CS课程制作棋盘游戏。我已经将JPanels放在彼此旁边构建了基本的棋盘,现在我想在这些JPanels之上添加一些棋子,这样每当我移动时他们,原来的JPanel制作基本板出现..这可能吗? 那是我的代码:

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

public class LOA extends JFrame{

    static JPanel[][] board;
    static Color temp;
    static Color col1 = Color.DARK_GRAY;
    static Color col2 = Color.LIGHT_GRAY;

    public static void main (String [] args){
        JFrame LOA = new JFrame();
        board = new JPanel[8][8];
        LOA.setLayout(new GridLayout(8, 8));
        for(int i=0; i<8; i++) {
            if (i%2 == 0) {
                temp = col1;
            }
            else {
                temp = col2;
            }
            for(int j=0; j<8; j++) {
                board[i][j]= new Tiles(temp);
                LOA.getContentPane().add(board[i][j],i,j);
                if (temp.equals(col1)) {
                    temp = col2;
                }
                else {
                    temp = col1;
                }
            }
        }
        for(int i=0; i<8; i++) {
            for(int j = 0; j<8; j++){
                if (i < 7 && i > 0 && (j == 0 || j == 7)) {
                    board[i][j] = (JPanel) board[i][j].add(new Checkers(Color.black));
                }
                if (j < 7 && j > 0 && (i == 0 || i == 7)) {
                    board[i][j] = (JPanel) board[i][j].add(new Checkers(Color.WHITE));;
                }
                LOA.getContentPane().add(board[i][j],i,j);
            }
        }
        LOA.setSize(600, 600);
        LOA.setVisible(true);
        LOA.setLocationRelativeTo(null);
        LOA.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

如果需要实际的Checkers和Tiles类,我会在这里发布em ..但它们基本上是一个采用paintComponent()方法的JPanel,Tiles负责董事会,Checkers就是我的想要在JPanel板上画一个椭圆形......任何答案都表示赞赏。

0 个答案:

没有答案