【问题标题】:Trying to create a chessboard using an array and graphics尝试使用数组和图形创建棋盘
【发布时间】:2016-10-24 03:08:33
【问题描述】:

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

我不确定我的程序有什么问题。一切似乎都已签出,但弹出的窗口并未显示我正在尝试创建的内容。

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);
  }
}

大部分图形项都是直接从示例中提取的。

任何帮助都会很棒!

【问题讨论】:

  • "...doesn't display what I'm trying to create" -- 你没有告诉我们!请解决这个问题。
  • 将第二个内循环增量从 i++ 更改为 j++。祝你好运!
  • 如果您发现错误或异常 - 您也应该告诉我们。

标签: java arrays graphics


【解决方案1】:

你的代码只有一个问题:

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

你用i++代替j++

【讨论】:

  • 我现在真的很傻。应该更加注意这一点。对不起
猜你喜欢
  • 1970-01-01
  • 2019-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-07
  • 2018-03-26
  • 1970-01-01
  • 2014-01-31
相关资源
最近更新 更多