This class loosely implements the java.util.Vector
API, in that it implements the 1.1.x version of
java.util.Vector, has no collection class support,
and notifies the ListDataListeners when changes occur.

UIManager manages the current look and feel, the set of
available look and feels, PropertyChangeListeners that
are notified when the look and feel changes, look and feel defaults, and
convenience methods for obtaining various default values.

An exception that indicates the requested look & feel
management classes are not present on the user's system.

Package javax.swing Description

Provides a set of "lightweight"
(all-Java language) components that,
to the maximum degree possible, work the same on all platforms.
For a programmer's guide to using these components, see
Creating
a GUI with JFC/Swing, a trail in The Java Tutorial.
For other resources, see
Related Documentation.

In general Swing is not thread safe. All Swing components and related
classes, unless otherwise documented, must be accessed on the event
dispatching thread.

Typical Swing applications do processing in response to an event
generated from a user gesture. For example, clicking on a JButton notifies all ActionListeners added to the JButton. As all events generated from a user gesture are
dispatched on the event dispatching thread, most developers are not
impacted by the restriction.

Where the impact lies, however, is in constructing and showing a
Swing application. Calls to an application's main method,
or methods in Applet, are not invoked on the event
dispatching thread. As such, care must be taken to transfer control
to the event dispatching thread when constructing and showing an
application or applet. The preferred way to transfer control and begin
working with Swing is to use invokeLater. The invokeLater method schedules a Runnable to be processed on
the event dispatching thread. The following two examples work equally
well for transferring control and starting up a Swing application:

This restriction also applies to models attached to Swing components.
For example, if a TableModel is attached to a JTable, the TableModel should only be modified on the
event dispatching thread. If you modify the model on a separate
thread you run the risk of exceptions and possible display
corruption.

As all events are delivered on the event dispatching thread, care must
be taken in event processing. In particular, a long running task, such
as network io or computational intensive processing, executed on the
event dispatching thread blocks the event dispatching thread from
dispatching any other events. While the event dispatching thread is
blocked the application is completely unresponsive to user
input. Refer to SwingWorker for the preferred way to do such
processing when working with Swing.