1  /*
  2   *  File:  ColorBoxes4.java
  3   *
  4   *  Display built-in colors with labels, a 2D array, and a nested loop
  5   *
  6   *  Copyright:  Northeast Parallel Architectures Center
  7   *  
  8   */
  9  
 10  import java.applet.Applet;
 11  import java.awt.Graphics;
 12  import java.awt.Color;
 13  import java.awt.FontMetrics;
 14  
 15  public class ColorBoxes4 extends Applet {
 16  
 17     // Initialize two-dimensional color array:
 18     private Color color[][] = {
 19        { Color.black, Color.blue, Color.cyan, Color.darkGray },
 20        { Color.gray, Color.green, Color.lightGray, Color.magenta },
 21        { Color.orange, Color.pink, Color.red, Color.white },
 22        { Color.yellow }
 23     };
 24     
 25     // Initialize two-dimensional array of color strings:
 26     private String colorString[][] = {
 27        { "black", "blue", "cyan", "darkGray" },
 28        { "gray", "green", "lightGray", "magenta" },
 29        { "orange", "pink", "red", "white" },
 30        { "yellow" }
 31     };
 32     
 33     public void paint( Graphics g ) {
 34        
 35        FontMetrics fm = g.getFontMetrics();
 36        int descender = fm.getDescent();
 37        
 38        // Draw rows of color boxes:
 39        for ( int i = 0; i < color.length; i++ ) {
 40           for ( int j = 0; j < color[i].length; j++ ) {
 41             g.setColor( color[i][j] );
 42             g.fillRect( 10 + 70*j, 10 + 70*i, 50, 50 );
 43             g.setColor( Color.black );
 44             g.drawString( colorString[i][j], 10 + 70*j, 10 + 70*i - descender );
 45           }
 46        }
 47        
 48     }
 49  
 50  }
 51