title: Java: Drawing graphics from an array
body: <p>I'm working on my first java game for a school project, and I'm having some problems drawing the graphics based on information in an array.</p>
  
  <p>What I'm basically trying to do is to create a 2D array (matrix) which will store all the information about the world in which the player can move. So some elements in the array will contain a wall, others open space for the player to move in, and so on...</p>
  
  <p>I have this sample code which I'm working from:</p>
  
  <pre><code>/**
  *
  * @author Rasztemberg
  */
  package simpleGame;
  
  import java.awt.Color;
  import java.awt.Graphics;
  import java.awt.event.KeyEvent;
  import java.awt.event.KeyListener;
  import javax.swing.JPanel;
  
  
  /**
   * GameBoard is a part of JPanel. 
   * It has a Graphical Object {@link Graphics}
   * that can be used to render shapes etc. Pass it's reference to any object you 
   * want to display in the gameBoard panel.
   */
  
  
  public class GameBoard extends JPanel implements KeyListener{
  
  
  
  Player player; 
  Player enemy;
  
  public GameBoard(){
  
      // SETUP PLAYER ON THE BOARD;
      int xPos = 0; 
      int yPos = 0; 
      int width = 20; 
      int height = 20; 
      Color playerC = Color.BLUE;
  
      player = new Player(xPos, yPos, width, height, playerC);
  
      // SETUP ENEMY ON THE BOARD;
      enemy = new Player(100, 100, width, height, Color.RED);
  
      addKeyListener(this);
  }
  
  
  /*
   * 
   * JPanel function to display all gameBoard object graphics.
   */
  
  @Override
  public void paint(Graphics g){
      super.paint(g); // Call it's parent for proper rendering.
  
      player.display(g);
      enemy.display(g);
  }
  
  
  @Override
  public void keyTyped(KeyEvent e) {}
  
  @Override
  public void keyPressed(KeyEvent e) {
  
      int keyCode = e.getKeyCode();
      if (keyCode == KeyEvent.VK_LEFT) {
           player.moveLeft();
       }
  
       if (keyCode == KeyEvent.VK_RIGHT) {
           player.moveRight();
       }
  
       if (keyCode == KeyEvent.VK_DOWN) {
           player.moveDown();
       }
  
       if (keyCode == KeyEvent.VK_UP) {
           player.moveUp();
       }
  }
  
  @Override
  public void keyReleased(KeyEvent e) {}
  
  
  /**
   * Set's focus on the panel so key events are catch. 
   */
  
  public boolean isFocusTraversable() {
      return true;
  }
  </code></pre>
  
  <p>}</p>
  
  <p>And,</p>
  
  <pre><code>/**
  * @author Rasztemberg
  */
  package simpleGame;
  
  import java.awt.Color;
  import java.awt.Graphics;
  import java.awt.Graphics2D;
  import java.awt.event.KeyEvent;
  import java.awt.event.KeyListener;
  import java.awt.event.MouseAdapter;
  import javax.swing.JPanel;
  
  
  /** 
   *  This is main player Class. 
   *  
   */
  
  
  public class World  {
  
   // Snake parameters
  
   private int x; 
   private int y; 
   private int width; 
   private int height; 
   private Color color;
  
   /** 
   *  Class constructor. Called when instantiated.
   *  Assigns x and y coordinates to position the player. 
   *  Sets width, height and color to the rendered object.
   * 
   */
  
  
  public World(int x, int y, int w, int h, Color c){
  
      this.x = x; 
      this.y = y; 
      this.width = w; 
      this.height = h;
      this.color = c;
  }
  
  /**
   * Accepts Graphics object to render 
   * player 1 shape
   */
  
  public void display(Graphics g) {
  
      // This is player rendered graphics.
      Graphics2D walls = (Graphics2D) g;    // Graphical library to render shapes.
      walls.setColor(color);
      walls.drawRect(x, y, width, height);
      walls.fillRect(x, y, width, height);
  } 
  }
  </code></pre>
  
  <p>Now, I made this for loop to populate a test Array:</p>
  
  <pre><code>int[][] wallArray = new int[800][600];
  
          for (int x = 0; x &lt; wallArray.length; x++) {
              for (int y = 0; y &lt; wallArray.length; y++) {
                  wallArray[x][y] = 1;
              }
          }
  
          wallArray[100][100] = 0;
          greatWall = new World(wallArray);
  </code></pre>
  
  <p>Do you know how I could draw this array? I apologize for the length of the code...</p>