FileDocCategorySizeDatePackage
SystemColorList.javaAPI DocExample2493Sat Jun 02 02:44:10 BST 2001None

SystemColorList.java

// This example is from _Java Examples in a Nutshell_. (http://www.oreilly.com)
// Copyright (c) 1997 by David Flanagan
// This example is provided WITHOUT ANY WARRANTY either expressed or implied.
// You may study, use, modify, and distribute it for non-commercial purposes.
// For any commercial use, see http://www.davidflanagan.com/javaexamples

import java.applet.*;
import java.awt.*;

/**
 * An applet that displays all of the predefined system colors.
 **/
public class SystemColorList extends Applet {
  String[] color_names = {
    "desktop", "activeCaption", "activeCaptionText", "activeCaptionBorder",
    "inactiveCaption", "inactiveCaptionText", "inactiveCaptionBorder",
    "window", "windowBorder", "windowText", "menu", "menuText", "text",
    "textText", "textHighlight", "textHighlightText", "textInactiveText",
    "control", "controlText", "controlHighlight", "controlLtHighlight",
    "controlShadow", "controlDkShadow", "scrollbar", "info", "infoText"
  };
  SystemColor[] colors = {
    SystemColor.desktop, SystemColor.activeCaption,
    SystemColor.activeCaptionText, SystemColor.activeCaptionBorder,
    SystemColor.inactiveCaption, SystemColor.inactiveCaptionText,
    SystemColor.inactiveCaptionBorder, SystemColor.window,
    SystemColor.windowBorder, SystemColor.windowText,
    SystemColor.menu, SystemColor.menuText, SystemColor.text,
    SystemColor.textText, SystemColor.textHighlight,
    SystemColor.textHighlightText, SystemColor.textInactiveText,
    SystemColor.control, SystemColor.controlText, SystemColor.controlHighlight,
    SystemColor.controlLtHighlight, SystemColor.controlShadow,
    SystemColor.controlDkShadow, SystemColor.scrollbar, SystemColor.info,
    SystemColor.infoText
  };

  public void init() {
    // Use a bunch of Label objects arranged in a grid to display the colors.
    this.setLayout(new GridLayout(0, 3, 5, 5));
    for(int i = 0; i < colors.length; i++) {
      // Create a label object to display a system color and its name
      Label l = new Label(color_names[i], Label.CENTER);
      this.add(l);
      // compute a foreground color to contrast with the background
      Color bg  = colors[i], fg;
      int r = bg.getRed(), g = bg.getGreen(), b = bg.getBlue();
      int avg = (r + g + b) / 3;
      if (avg > 128) fg = Color.black;
      else fg = Color.white;
      // And assign the colors.
      l.setBackground(bg);
      l.setForeground(fg);
    }
  }
}