1  /*
  2   *  File:  MyColorBoxes3.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 MyColorBoxes3 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 color arrays:
 27     Color firstRowColor[] = { Color.black, Color.blue, Color.cyan, Color.darkGray };
 28     Color secondRowColor[] = { Color.gray, Color.green, Color.lightGray, Color.magenta };
 29     Color thirdRowColor[] = { Color.orange, Color.pink, Color.red, Color.white };
 30     Color fourthRowColor[] = { Color.yellow, brown, turquoise, violet };
 31     Color fifthRowColor[] = { gold, darkBrown, navy, darkPurple };
 32     
 33     public void paint( Graphics g ) {
 34        
 35        // vertical adjustment for color labels:
 36        int descender = g.getFontMetrics().getDescent();
 37        
 38        // Draw the first row of color boxes:
 39        for ( int j = 0; j < 4; j++ ) {
 40            g.setColor( firstRowColor[j] );
 41            g.fillRect( 10 + 70*j, 10, 50, 50 );
 42            g.setColor( Color.black );
 43            g.drawString( toString( firstRowColor[j] ), 10 + 70*j, 10 - descender );
 44        }
 45        
 46        // Draw the second row of color boxes:
 47        for ( int j = 0; j < 4; j++ ) {
 48            g.setColor( secondRowColor[j] );
 49            g.fillRect( 10 + 70*j, 80, 50, 50 );
 50            g.setColor( Color.black );
 51            g.drawString( toString( secondRowColor[j] ), 10 + 70*j, 80 - descender );
 52        }
 53        
 54        // Draw the third row of color boxes:
 55        for ( int j = 0; j < 4; j++ ) {
 56            g.setColor( thirdRowColor[j] );
 57            g.fillRect( 10 + 70*j, 150, 50, 50 );
 58            g.setColor( Color.black );
 59            g.drawString( toString( thirdRowColor[j] ), 10 + 70*j, 150 - descender );
 60        }
 61        
 62        // Draw the fourth row of color boxes:
 63        for ( int j = 0; j < 4; j++ ) {
 64            g.setColor( fourthRowColor[j] );
 65            g.fillRect( 10 + 70*j, 220, 50, 50 );
 66            g.setColor( Color.black );
 67            g.drawString( toString( fourthRowColor[j] ), 10 + 70*j, 220 - descender );
 68        }
 69        
 70        // Draw the fifth row of color boxes:
 71        for ( int j = 0; j < 4; j++ ) {
 72            g.setColor( fifthRowColor[j] );
 73            g.fillRect( 10 + 70*j, 290, 50, 50 );
 74            g.setColor( Color.black );
 75            g.drawString( toString( fifthRowColor[j] ), 10 + 70*j, 290 - descender );
 76        }
 77        
 78     }
 79  
 80     public String toString( Color c ) {
 81        
 82        if ( c.equals( Color.black ) ) {
 83           return "black";
 84        } else if ( c.equals( Color.blue ) ) {
 85           return "blue";
 86        } else if ( c.equals( Color.cyan ) ) {
 87           return "cyan";
 88        } else if ( c.equals( Color.darkGray ) ) {
 89           return "darkGray";
 90        } else if ( c.equals( Color.gray ) ) {
 91           return "gray";
 92        } else if ( c.equals( Color.green ) ) {
 93           return "green";
 94        } else if ( c.equals( Color.lightGray ) ) {
 95           return "lightGray";
 96        } else if ( c.equals( Color.magenta ) ) {
 97           return "magenta";
 98        } else if ( c.equals( Color.orange ) ) {
 99           return "orange";
100        } else if ( c.equals( Color.pink ) ) {
101           return "pink";
102        } else if ( c.equals( Color.red ) ) {
103           return "red";
104        } else if ( c.equals( Color.white ) ) {
105           return "white";
106        } else if ( c.equals( Color.yellow ) ) {
107           return "yellow";
108        } else if ( c.equals( brown ) ) {
109           return "brown";
110        } else if ( c.equals( turquoise ) ) {
111           return "turquoise";
112        } else if ( c.equals( violet ) ) {
113           return "violet";
114        } else if ( c.equals( gold ) ) {
115           return "gold";
116        } else if ( c.equals( darkBrown ) ) {
117           return "darkBrown";
118        } else if ( c.equals( navy ) ) {
119           return "navy";
120        } else if ( c.equals( darkPurple ) ) {
121           return "darkPurple";
122        } else {
123           return "unknown";
124        }
125        
126     }
127     
128  }
129