Remaining Tasks


You've invested a considerable amount of code in this simple interface. Yet it's far from complete. Here is a list of some of the things you might consider coding to complete the interface:

  • Clear the text fields when the user presses Add.

  • Add a constraint that prevents the user from entering duplicate courses. You would code the logic to check for duplicates in CourseCatalog.

  • Add delete button to remove courses. You might allow the user to select multiple rows for deletion.

  • Add an update button to make edits to existing courses.

  • Install the ability to sort the data in each column.

  • Add a numeric filter to limit the user to entering only digits for the course number.

  • Set each column width depending upon the average or maximum width of its contents.

  • Add a hook that selects the contents of each field as the user tabs or clicks into it. This allows the user to replace the field's contents by simply typing.

  • Add mouseover help. As the user moves the mouse over each field, show summary information in either the status bar or in a small pop-up "tool tip."

  • Add keyboard help. Respond to the F1 key by popping up help. (Obviously this is more involved and requires an understanding of how to build a help subsystem.)

  • Replace the department and/or course number fields with a drop-down list (JComboBox).

  • Add interaction with the preferences subsystem (see Additional Lesson III) to allow the application to "remember" the last position of each window.

I've no doubt left a few features off this list. Building a robust, sophisticated user interface is a lot of work. The absence of any of these features will severely cripple the effectiveness of your application. However, rather than you as a developer trying to figure out what you need, you should treat each of these features as customer requirements. Your customer team needs a qualified expert to design and detail the specifications for the user interface.[6]

[6] This person can be a developer acting in the role of UI expert for the customer team. Do not, however, underestimate the importance of this role. Most developers, even those who have read a book or two on the topic, don't have a clue how to create an effective user experience.



Agile Java. Crafting Code with Test-Driven Development
Agile Javaв„ў: Crafting Code with Test-Driven Development
ISBN: 0131482394
EAN: 2147483647
Year: 2003
Pages: 391
Authors: Jeff Langr

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net