1  /*
  2   *  File:  MyColorBoxes4.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 MyColorBoxes4 extends Applet {
 16  
 17     // Define some colors:
 18     private Color brown      = new Color( 0xA5, 0x2A, 0x2A );
 19     private Color turquoise  = new Color( 0x40, 0xE0, 0xD0 );
 20     private Color violet     = new Color( 0xEE, 0x82, 0xEE );
 21     private Color gold       = new Color( 0xFF, 0xD7, 0x00 );
 22     private Color darkBrown  = new Color( 0x5C, 0x40, 0x33 );
 23     private Color navy       = new Color( 0x00, 0x00, 0x80 );
 24     private Color darkPurple = new Color( 0x87, 0x1F, 0x78 );
 25     
 26     // Initialize two-dimensional color array:
 27     private Color color[][] = {
 28        { Color.black, Color.blue, Color.cyan, Color.darkGray },
 29        { Color.gray, Color.green, Color.lightGray, Color.magenta },
 30        { Color.orange, Color.pink, Color.red, Color.white },
 31        { Color.yellow, brown, turquoise, violet },
 32        { gold, darkBrown, navy, darkPurple }
 33     };
 34     
 35     // Initialize two-dimensional array of color strings:
 36     private String colorString[][] = {
 37        { "black", "blue", "cyan", "darkGray" },
 38        { "gray", "green", "lightGray", "magenta" },
 39        { "orange", "pink", "red", "white" },
 40        { "yellow", "brown", "turquoise", "violet" },
 41        { "gold", "darkBrown", "navy", "darkPurple" }
 42     };
 43     
 44     public void paint( Graphics g ) {
 45        
 46        // vertical adjustment for color labels:
 47        int descender = g.getFontMetrics().getDescent();
 48        
 49        // Draw rows of color boxes:
 50        for ( int i = 0; i < color.length; i++ ) {
 51           for ( int j = 0; j < color[i].length; j++ ) {
 52             g.setColor( color[i][j] );
 53             g.fillRect( 10 + 70*j, 10 + 70*i, 50, 50 );
 54             g.setColor( Color.black );
 55             g.drawString( colorString[i][j], 10 + 70*j, 10 + 70*i - descender );
 56           }
 57        }
 58        
 59     }
 60  
 61  }
 62