创建JFrame以显示Checkerboard

时间:2011-02-11 18:31:00

标签: java swing layout

我的任务详情如下:

目标是将棋盘放在屏幕上的窗口中。 我有两个名为PicturePanel和Pixel的课程

类PicturePanel使用名为Pixel

的类扩展了JPanel的功能

我完成此任务的想法是制作每种颜色的50个方形PicturePanel,然后将它们交替添加到一个大面板上,然后将该面板添加到我的JFrame对象中。

这是我的代码:

public class BlueSquare extends PicturePanel
{

    public BlueSquare()
    {
     this.setSize(50,50);
     setAllPixelsToAColor(0,0,255);
    }

}  


public class RedSquare extends PicturePanel
{

    public RedSquare()
    {
     this.setSize(50,50);
     setAllPixelsToAColor(0,255,0);
    }

}  

public class BigPanel extends PicturePanel 
{   
    public BigPanel()
    {
    RedSquare rs = new RedSquare();
    BlueSquare bs = new BlueSquare();

     for(int i=0; i<50;i++ )
     {
      add(rs);
      add(bs);
     }
}

public class CheckerBoard extends JFrame
{

   public CheckerBoard()
   {
    setTitle("Checker Board");
    setSize(500,500);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    BigPanel bp = new BigPanel();

    add(bp);
    this.setVisible(true);

   }


   public static void main(String args[])
   {
       CheckerBoard cb = new CheckerBoard();

   }
}

运行时只显示白框和红框

如何格式化Checkerboard以查看两种颜色?

2 个答案:

答案 0 :(得分:3)

你一次又一次地添加相同的两个方格。而是在循环中创建新的正方形并添加它们。例如:

for(int i=0; i<50;i++ ){
    add(new RedSquare());
    add(new BlueSquare());

}

答案 1 :(得分:1)

这不符合你的任务,但你可能想要研究这种绘制棋盘的替代方法,显示为herehere