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