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