尝试使用数组和图形创建棋盘

时间:2016-10-24 03:08:33

标签: java arrays graphics

不会撒谎,这是一个家庭作业问题。事实上,我们还没有详细介绍图形,只是通过一个例子。

我不确定我的程序有什么问题。一切似乎都结束了,但弹出的窗口并没有显示我想要创建的内容。

import java.util.*;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JComponent;
public class ProblemR6_37
{
  public static void draw(Graphics g)
  {
    int[][] values=new int[8][8];
    for (int i=0; i<values.length; i++)
    {
      for (int j=0; j<values[i].length; j++)
      {
        if ((i+j)%2!=0)
        {values[i][j]=1;}
      }
    }
    for (int i=0; i<values.length; i++)
    {
      for (int j=0; j<values[i].length; i++)
      {
        if (values[i][j]==0)
        {
          g.setColor(Color.BLACK);
          g.fillRect(j*20, i*20, 20,20);
        }
        else if (values[i][j]==1)
        {
          g.setColor(Color.WHITE);
          g.fillRect(j*20,i*20,20,20);
        }
      }
    }
  }
  public static void main(String[] args)
  {
    JFrame frame=new JFrame();
    frame.setSize(400,400);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JComponent component=new JComponent()
    {
      public void paintComponent(Graphics graph)
      {
        draw(graph);
      }
    };
    frame.add(component);
    frame.setVisible(true);
  }
}

大多数图形项都是从示例中直接拉出来的。

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:0)

您的代码中只有一个问题:

for (int j=0; j<values[i].length; i++)更改为for (int j=0; j<values[i].length; j++)

您放置i++而不是j++