Testing Graphical Components

Problem

You don’t want to have to write a little main program with a frame each time you write a subclass of Component.

Solution

Use my CompTest class, which has a main method that builds a frame and installs your component into it.

Discussion

CompTest is a small main program that takes a class name from the command line, instantiates it (see Section 25.4), and puts it in a JFrame, alone with an Exit button and its action handler. It also worries a bit over making sure the window comes out the right size. Many of these issues relate to the GUI rather than graphics, and are deferred to Chapter 13.

The class to be tested must be a subclass of Component, or an error message will be printed. This is very convenient for running small component classes, and I show a lot of these in this chapter and the next. Using it is simplicity itself; for example, to instantiate the DrawStringDemo2 class from Section 12.4, you just say:

java CompTest DrawStringDemo2

This is shown on the left side of Figure 12-1. It’s interesting to try running it on some of the predefined classes. A JTree (Java’s tree view widget, used in Section 19.10) no-argument constructor creates a JTree that comes up with a demonstration set of data, as in Figure 12-1, right.

CompTest showing DrawStringDemo2 (left) and javax.swing.JTree (right)

Figure 12-1. CompTest showing DrawStringDemo2 (left) and javax.swing.JTree (right)

Since little of this relates to the material in ...

Get Java Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.