import java.awt.*; import java.applet.*; // This applet tests the 216 color Web palette base on RGB having only the // following decimal(hex) values 00(00), 51(33), 102(66), 153(99), 204(CC), 255(FF). // Other values are also permitted in the display. public class TryColor extends Applet { public void init() { setBackground(Color.white); boolean netscapeBrowser = false; if (System.getProperty("java.vendor").startsWith("Netscape")) netscapeBrowser = true; setLayout(new BorderLayout(0, 15)); ColorPan top = new ColorPan(netscapeBrowser); add("North", top); ColorPan bottom = new ColorPan(netscapeBrowser); add("South", bottom); } } // END OF Class TryColor final class ColorPan extends Panel { Button[] downLotsButton, downBitButton, valueButton, upBitButton, upLotsButton; String[] colorString = { " Red", " Green", " Blue" }; int[] gun; Color buttonColor; boolean colorChanged; Scrollbar scrollbar; Panel adjust; boolean netscapeBrowser; ColorPan(boolean netscapeBrowser) { this.netscapeBrowser = netscapeBrowser; setLayout (new BorderLayout(0, 5)); scrollbar = new Scrollbar(Scrollbar.HORIZONTAL, 0, 5, 0, 20); add("South", scrollbar); adjust = new Panel(); adjust.setLayout(new GridLayout(3, 5)); add("North", adjust); downLotsButton = new Button[3]; downBitButton = new Button[3]; valueButton = new Button[3]; upBitButton = new Button[3]; upLotsButton = new Button[3]; Font font = new Font("TimesRoman", Font.BOLD, 40); gun = new int[3]; for (int color = 0; color < 3; color++) { downLotsButton[color] = new Button("<<"); downBitButton[color] = new Button("<"); valueButton[color] = new Button(String.valueOf(gun[color] = 204) + colorString[color]); upBitButton[color] = new Button(">"); upLotsButton[color] = new Button(">>"); downLotsButton[color].setFont(font); downBitButton[color].setFont(font); valueButton[color].setFont(font); upBitButton[color].setFont(font); upLotsButton[color].setFont(font); adjust.add(downLotsButton[color]); adjust.add(downBitButton[color]); adjust.add(valueButton[color]); adjust.add(upBitButton[color]); adjust.add(upLotsButton[color]); } changeColors(); } final void changeColors() { buttonColor = new Color (gun[0], gun[1], gun[2]); for (int i=0; i<3; i++) { downLotsButton[i].setBackground(buttonColor); downBitButton[i].setBackground(buttonColor); valueButton[i].setBackground(buttonColor); upBitButton[i].setBackground(buttonColor); upLotsButton[i].setBackground(buttonColor); valueButton[i].setLabel(String.valueOf(gun[i]) + colorString[i]); } scrollbar.setBackground(buttonColor); if (netscapeBrowser) { hide(); show(); } } public final boolean action(Event evt, Object obj) { for (int color = 0; color < 3; color++) { colorChanged = false; if (evt.target == downLotsButton[color]) { if (gun[color] < 1) return true; gun[color] = 51*((gun[color] - 1)/51); colorChanged = true; } else if (evt.target == downBitButton[color]) { if (gun[color] < 1) return true; gun[color]--; colorChanged = true; } else if (evt.target == upBitButton[color]) { if (gun[color] > 254) return true; gun[color]++; colorChanged = true; } else if (evt.target == upLotsButton[color]) { if (gun[color] > 254) return true; gun[color] = 51*((gun[color]/51) + 1); colorChanged = true; } if (colorChanged) changeColors(); } return super.action(evt, obj); } } // END OF Class ColorPan