Welcome to Swing 0.4, the newest preliminary
Swing release from the JavaSoft division of Sun Microsystems Inc. This release
-- complete with a hefty stack of specification
sheets and some example applications
that show how Swing components work -- is part of a continuing effort by
the Swing design team to develop the Swing component set with the active
assistance of developers.
We hope that the developer community will review this set of specifications
while using Swing, and will continue to supply us with feedback
(see next item) so that we can incorporate ideas and suggestions from the
developer community into the final Swing product at release time.

As the beta release
of Swing draws near, we continue to welcome feedback from developers --
especially bug reports, which are particularly important as Swing development
enters its final stages.
If you have feedback about important issues regarding Swing, please mail
it to:
swing-feedback@java.sun.com
We can't promise at this late date that we'll respond personally to every
feedback message. But please do send us feedback about issues that you
consider really important. We'll carefully consider your ideas, remarks,
suggestions, and comments.

In this release, many Swing classes have been renamed
or have been relocated to subordinate packages. Consequently, this version
of Swing -- Release 0.4 -- is effectively incompatible with Swing 0.3 and
all other previous releases.
For developers who have written code using previous versions of Swing,
we have created a utility named ClassRenamer, which you can use to update
Swing programs that were written using Swing's old class names.
You can find the ClassRenamer utility in the swing-0.4/bin directory.
To run it over your source files, execute a command using the following
syntax:
java -classpath <swing>\bin;%CLASSPATH% *.java
ClassRenamer doesn't handle batch, shell-wrapper files, or do anything
else that could be considered fancy. We've kept it simple because it's a
temporary solution to a temporary problem; it will no longer be supplied
once the beta release is distributed, so use it while you can.
For many more details on how Sing's new naming convention works, see
the spec sheet titled "Swing Packaging (A
Naming Dilemma and a Proposed Solution)."
Other noteworthy additions to this release include:
- The JSplitPane class: a pane that can be split into frames, with separate
scrollbars for each region. JSplitPane supports interactive resizing of
the vertical or horizontal boundary between its two children.
- New support for internal frames (JInternalFrame) and layered panes
(JLayeredPane), which can be used to create MDI (multiple document interface)
applications.
- New JWindow and JDialog classes. Their APIs are essentially the same
as that of JFrame; however, they inherit from java.awt.Window and
java.awt.Dialog, respectively.
- Dockable and floating toolbars.
- New and improved support for FocusManager.
- A new JRadioButtonMenuItem class.
- Many tweaks, bug fixes, and enhancements.
 |
As everyone who keeps
up with trends in Java surely must know by now, Swing is a new set of GUI
components, implemented in 100% Pure Java, with a host of new features and
a new "Pluggable Look and Feel" design that can make them automatically
look and behave just like components that are native to whatever platform
they are running on. (For more details, see the Swing
Overview page.)
Swing components are based on the Lightweight UI Framework that is familiar
to JDK 1.1 users. But their pluggable-look-and-feel architecture lets you
easily create a single set of GUI components that can automatically implement
the appearance and behavior of components designed for any OS platform --
including Windows, Solaris, Macintosh, or any customized look and feel that
you might want to design.
The Swing tool set is a subset of the Java Foundation Classes (JFC),
an umbrella designation for a large collection of classes designed for building
visual applications in Java. (JFC includes not only the Swing component
set, but also the familiar AWT (Abstract Windows Toolkit), and Java2D.)
Engineering teams from JavaSoft and Netscape are working closely together
to define and develop Swing, along with the rest of JFC. A migration
plan is being created to help IFC developers move as quickly as possible
to the JFC.
Swing components include 100% Pure Java versions of the existing AWT
component set (Button, Scrollbar, List, and so on), plus a rich Pure Java
set of higher-level components (such as tree-view, list-box, and tabbed-pane
components).

The next edition of The
Java Tutorial, the best-selling self-guided tour of the Java programming
language from JavaSoft and Addison-Wesley, will feature a brand-new section
all about Swing.
And -- guess what! You can get
a sneak preview of the Tutorial's new Swing section right now! Just follow
this link--
Yes:
Show me the Tutorial!
-- and then surf on over to other sections of the Tutorial that present
an overview
of Swing components, tips on getting
started with Swing, and separate individual subsections that show how
to use each Swing component.
Be sure to check the Tutorial link often (you can also find it on the
home page) because it's updated frequently -- almost
every day there's a new code example, a new explanation of how to do something,
or something else that's new. And it's dynamically liked to this document
set, so if you don't check out our Tutorial link often, you'll never know
what you're missing!
The Java Tutorial is written by Mary Campione and Kathy
Walrath of the Java team at JavaSoft. It is the only Java tutorial that
JavaSoft officially endorses.
The specifications in this document package describe and illustrate the
infrastructure -- that is, the underlying services and patterns -- that
are the building blocks of the Swing component set. Some of the most important
documents in this set are described below. Follow the links for more detailed
information on each topic explored in this document set.
The "Swing Overview" section
of this document is a two-page description of Swing and its parts. It is
recommended reading for anyone who isn't very familiar with Swing. It explains
why Swing was invented, how Swing components work, and how they can help
you create flexible and powerful components for your Java applets and applications.
The page titled "Swing Architecture"
-- rewritten and expanded for this release goes into more detail about the
architecture of Swing components, focusing on the features of Swing components
that make their pluggable L&F capabilities possible. It describes and
demonstrates the modified form of model-view-component (MVC) architecture
on which all Swing components are based, and it shows how you can use Swing
components in your applications.
Images can be difficult to use, and up to now they haven't been persistent
objects. Swing introduces a new object called a icon that can simplify
the use of images and lets you create persistent images. The specification
sheet titled "Icons and Fills in Swing Components"
shows how you can benefit from using these new kinds of images in your programs.
Swing provides generic support for Undo operations. The Swing Undo mechanism
is general and flexible enough to extend to all types of applications. It
allows the component developer to determine the appropriate granularity
of operations, and it is simple to use and extend. And of course it supports
JavaBeans.

We are adding many new features and capabilities to Swing in the next
release. Watch this space for the new features described under the headings
that follow.
Other Upcoming Features:
Other Swing features that are coming soon include:
- New common dialog classes, including Warning and Error dialogs and
Color, font, and file chooser dialogs
- Specialized text fields designed for formatted input such as currency,
date, and password entries
- Full JavaBeans support, including BeanInfo classes for all Swing components
and support for serialization in all Swing components.
 |