/**** FlexLabelTest.java ****/ /* */ /************************************************************* FlexLabelTest tests the FlexLabel class. It displays a start-up label in the applet's screen space. Subsequently, it dynamically displays alternate labels for each click of the left, right, or middle mouse button, based on the current applet's dimensions. It dynamically adds/removes an image and allows dynamic rearrangement of the image relative to the label. *************************************************************/ import java.awt.*; import java.awt.event.*; import java.applet.*; import flexlabel.*; public class FlexLabelTest extends Applet implements ItemListener { // // Instance variables: // Image image; FlexLabel label; String startPrompt = "[The label area is colored pink.]\n" + " \n" + "To test dynamic label alignment\n" + "(left, center, or right), click the\n" + "appropriate alignment toggle."; CheckboxGroup alignment, imagePosition; Checkbox useImage; Checkbox top, bottom, left, right; Checkbox leftAlign, centerAlign, rightAlign; // // Public methods: // public void init() { image = getImage(getDocumentBase(), "Bruno.jpg"); setLayout(new BorderLayout()); useImage = new Checkbox("Include Image"); useImage.addItemListener(this); Panel p1 = new Panel(); p1.add(useImage); add("North", p1); imagePosition = new CheckboxGroup(); top = new Checkbox("Top", imagePosition, true); top.addItemListener(this); bottom = new Checkbox("Bottom", imagePosition, false); bottom.addItemListener(this); left = new Checkbox("Left", imagePosition, false); left.addItemListener(this); right = new Checkbox("Right", imagePosition, false); right.addItemListener(this); p1.add(new Label("Image Position:")); p1.add(top); p1.add(bottom); p1.add(left); p1.add(right); disableImagePosition(); label = new FlexLabel("", 10, 15, FlexLabel.ALIGN_CENTER); add("Center", label); CheckboxGroup alignment = new CheckboxGroup(); leftAlign = new Checkbox("Left", alignment, false); leftAlign.addItemListener(this); centerAlign = new Checkbox("Center", alignment, true); centerAlign.addItemListener(this); rightAlign = new Checkbox("Right", alignment, false); rightAlign.addItemListener(this); Panel p2 = new Panel(); p2.add(new Label("Alignment:")); p2.add(leftAlign); p2.add(centerAlign); p2.add(rightAlign); add("South", p2); } // init // public void start() { label.setLabel(startPrompt); label.setBackground(Color.pink); } // start // public void paint(Graphics g) { update(g); } // paint // public void update(Graphics g) { // nothing for now } // update // public void itemStateChanged(ItemEvent e) { Object source = e.getSource(); if (source == useImage) { if (useImage.getState()) { label.setImage(image); enableImagePosition(); } else { label.setImage(null); disableImagePosition(); } } else if (source == top) { if (top.getState()) { label.setImagePosition(FlexLabel.IMAGE_TOP); } } else if (source == bottom) { if (bottom.getState()) { label.setImagePosition(FlexLabel.IMAGE_BOTTOM); } } else if (source == left) { if (left.getState()) { label.setImagePosition(FlexLabel.IMAGE_LEFT); } } else if (source == right) { if (right.getState()) { label.setImagePosition(FlexLabel.IMAGE_RIGHT); } } else if (source == leftAlign) { if (leftAlign.getState()) { label.setAlignment(FlexLabel.ALIGN_LEFT); label.setLabel("You clicked\nthe\ntoggle for left alignment."); } } else if (source == centerAlign) { if (centerAlign.getState()) { label.setAlignment(FlexLabel.ALIGN_CENTER); label.setLabel("You clicked\nthe\ntoggle\nfor center alignment."); } } else if (source == rightAlign) { if (rightAlign.getState()) { label.setAlignment(FlexLabel.ALIGN_RIGHT); label.setLabel("You clicked\nthe\ntoggle for right\nalignment."); } } } // itemStateChanged // // // Private methods: // private void enableImagePosition() { top.setEnabled(true); bottom.setEnabled(true); left.setEnabled(true); right.setEnabled(true); } // enableImagePosition // private void disableImagePosition() { top.setEnabled(false); bottom.setEnabled(false); left.setEnabled(false); right.setEnabled(false); } // disableImagePosition // } // FlexLabelTest class //