Technical Support
Discussion Forum
Online Training
Read About Java
Java In-Depth
Product Discounts
Membership Information

Java Cup Logo

JDC Home Page


Working Applet
Help and Hints
Source Code
Table of Contents
Online Training
shadowSearchFAQFeedback

FormField Help

Help is available for each task, or you can go straight to the FormField source code to see a solution.

Task 1

Declare the abstract class FormElement to be a subclass of Panel so that it can act as a Container.

public abstract class FormElement extends Panel {
    ...
}

Task 2

Define the method public boolean isEmpty to return false.

public boolean isEmpty() { return false; }

Task 3

Define an abstract method public String getContents.

public String getContents();

Task 4

Define the method public void verify to do nothing.

public void verify() {}

Task 5

Define method public boolean handleEvent. Upon LOST_FOCUS or ACTION_EVENT events, it should call verify on the element itself unless the element is empty.

The event convenience methods are called by method handleEvent. For example, action is called when an event of type ACTION_EVENT occurs. When a Component loses the focus (that is, the user clicked outside the Component), a LOST_FOCUS event is generated. You can override handleEvent to trap these two event types.

public boolean handleEvent(Event event) {
    switch (event.id) {
        // if they click mouse outside of element or activate it,
        // verify the element.
        case Event.LOST_FOCUS:
        case Event.ACTION_EVENT:
            if ( !isEmpty() ) verify();
            return true;
        default:
            return super.handleEvent(event);
    }
}

Any other event should be delegated to the standard handleEvent--call super.handleEvent to force the system to continue as if this handleEvent method had never intervened.