1  /*
  2   *  File:  ColorBoxes3.java
  3   *
  4   *  Display built-in colors with labels, arrays, and loops
  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 ColorBoxes3 extends Applet {
 16  
 17     // initialize color arrays:
 18     Color firstRowColor[] = { Color.black, Color.blue, Color.cyan, Color.darkGray };
 19     Color secondRowColor[] = { Color.gray, Color.green, Color.lightGray, Color.magenta };
 20     Color thirdRowColor[] = { Color.orange, Color.pink, Color.red, Color.white };
 21     Color fourthRowColor[] = { Color.yellow };
 22     
 23     public void paint( Graphics g ) {
 24        
 25        FontMetrics fm = g.getFontMetrics();
 26        int descender = fm.getDescent();
 27        
 28        // Draw the first row of color boxes:
 29        for ( int j = 0; j < 4; j++ ) {
 30            g.setColor( firstRowColor[j] );
 31            g.fillRect( 10 + 70*j, 10, 50, 50 );
 32            g.setColor( Color.black );
 33            g.drawString( toString( firstRowColor[j] ), 10 + 70*j, 10 - descender );
 34        }
 35        
 36        // Draw the second row of color boxes:
 37        for ( int j = 0; j < 4; j++ ) {
 38            g.setColor( secondRowColor[j] );
 39            g.fillRect( 10 + 70*j, 80, 50, 50 );
 40            g.setColor( Color.black );
 41            g.drawString( toString( secondRowColor[j] ), 10 + 70*j, 80 - descender );
 42        }
 43        
 44        // Draw the third row of color boxes:
 45        for ( int j = 0; j < 4; j++ ) {
 46            g.setColor( thirdRowColor[j] );
 47            g.fillRect( 10 + 70*j, 150, 50, 50 );
 48            g.setColor( Color.black );
 49            g.drawString( toString( thirdRowColor[j] ), 10 + 70*j, 150 - descender );
 50        }
 51        
 52        // Draw the fourth row of color boxes:
 53        for ( int j = 0; j < 1; j++ ) {
 54            g.setColor( fourthRowColor[j] );
 55            g.fillRect( 10 + 70*j, 220, 50, 50 );
 56            g.setColor( Color.black );
 57            g.drawString( toString( fourthRowColor[j] ), 10 + 70*j, 220 - descender );
 58        }
 59        
 60     }
 61  
 62     public String toString( Color c ) {
 63        
 64        if ( c.equals( Color.black ) ) {
 65           return "black";
 66        } else if ( c.equals( Color.blue ) ) {
 67           return "blue";
 68        } else if ( c.equals( Color.cyan ) ) {
 69           return "cyan";
 70        } else if ( c.equals( Color.darkGray ) ) {
 71           return "darkGray";
 72        } else if ( c.equals( Color.gray ) ) {
 73           return "gray";
 74        } else if ( c.equals( Color.green ) ) {
 75           return "green";
 76        } else if ( c.equals( Color.lightGray ) ) {
 77           return "lightGray";
 78        } else if ( c.equals( Color.magenta ) ) {
 79           return "magenta";
 80        } else if ( c.equals( Color.orange ) ) {
 81           return "orange";
 82        } else if ( c.equals( Color.pink ) ) {
 83           return "pink";
 84        } else if ( c.equals( Color.red ) ) {
 85           return "red";
 86        } else if ( c.equals( Color.white ) ) {
 87           return "white";
 88        } else if ( c.equals( Color.yellow ) ) {
 89           return "yellow";
 90        } else {
 91           return "unknown";
 92        }
 93        
 94     }
 95     
 96  }
 97