Navigation Bar

Home Button

Column Head: About Swing

Contents of Intro Pages

Column Heading: Component APIs

Column Heading: Pluggable L&F APIs

Download Swing Swing JavaDoc APIs JDK 1.1.4 Documentation
JDK 1.1.4 Download
JFC Web Site README


Head: Feedback


Welcome to the final pre-beta edition of FAQ Forum, where the Swing design team answers the questions that developers aske most frequently in the thousands of e-mail messages that we receive on our feedback hotline.

With this release, our experts answer some important questions on topics ranging from how long it will be before you can start using Swing to write releasable applications (the answer: You can do it right now) to the debut of common dialog boxes in this release (Version 0.5) of Swing.

We've enjoyed answering your questions in this column, and happy coding.


Start Coding Now: Swing Is Ready When You Are

Is it me, or is Swing getting faster? In early releases, everything seemed really S - L - O W. Now most operations seem to have gotten a lot speeder. I guess that's a statement rather than a question, but I'm glad to see the improvement.

You're right. Swing has gotten a lot faster, and it will get faster still after the beta cycle begins. For the early pre-beta releases of Swing, our main goal was just to get the API out to the public for review, in an implementation that was good enough to use for writing experimental programs. (You may recall that we warned everybody over and over in these pages that Swing was not nearly stable enough yet to be used for developing finished commercial products.)

That has all changed now. As we mention in the Introduction page of this document, Swing is now ready to be used in applications that you plan to ship; unless major unforeseen disasters occur, nothing more will be added to Swing that will break applications whose development began with this release (Version 0.5.) So you can now start using Swing to develop real-world applications.

As Swing's beta release date nears, an all-out final push to improve performance is under way. In fact, improving Swing's performance has now become our top priority, and early findings are looking very good. For example, when just one engineer worked on this project for one day recently, he improved the Swing set's performance by 2.7 times.


Where Has All the Source Code Gone?

In the FAQ Forum that you published for Version 0.4 of Swing, you mentioned that source code was included. Where is it?

We thought that the source code would be included, but for a number of confusing and boring legal reasons, it didn't get included after all. Sorry about that. Developers will now get access to source code beginning with the beta release.


Common Dialogs Arrive

Swing looks real nice and useful, but I see one thing missing: common dialog boxes. Many GUIs come with standard boxes for at least a few common operations, such as Abort/Retry, Yes/No, OK/Cancel, and the like. It would be very useful for Swing to have classes for all these kinds of dialog boxes.

This is a warmed-over question from the Version 0.4 issue of FAQ Forum, but the answer has changed. As we promised, several new common dialog classes, are being released with this version of Swing (Version 0.5). They include classes that can be used to create Option (message-box) dialogs and color, font, and file-chooser dialog boxes. When the beta version of Swing is released, you'll find that it includes even more common dialog classes.


Configuring Swing for Windows 95

When I tried to configure Swing for Windows 95 using the procedures outlined in the README.txt file that you provided, they didn't work. What's the story?

In Version 0.4 of Swing, a couple of lines were reversed in the section of the README file that explains how to set up environment variables for Windows 95. Updated instructions are provided in the README.txt file that accompanies this version of Swing.


The Latest News on JFC and JDK

Will the Java Foundation Classes be released in final form this year? And will the JFC, if released with Java Developer's Kit 1.2 (or later), be compatible with JDK 1.1?

JFC will be available in its final form in the fourth quarter of this year. The JFC components in that release will be fully compatible with JDK 1.1. Some special features and services -- such as Java2D, accessibility support, and a few others -- will require the next version of the JDK since the implementation of these services will require native code.


What's in a Name

Why were the class names used in Swing all changed in Version 0.4?

We devoted a lot of attention to that topic in the Version 0.4 edition of this document, but in case anyone missed it, we'll go over it again.

With the advent of Swing, many applications have to import both the old java.awt package and the new java.swing package:

import java.awt.*;
import java.swing.*;

We first tried naming components without the initial "J" -- which stands for Java, if you like -- but we ran into name clashes when importing both the old and new packages. Worse, the name clash caused the javac compiler to spew out some really confusing messages that completely obscured that fact that just a simple name clash was all that was occurring.

With Version 0.4 of Swing, which was released last month, we introduced a new method for fixing this problem. Many class names were changed, and many other classes were moved to new locations. Because of these changes, both Version 0.4 and Version 0.5 of Swing (this one) are effectively incompatible with Swing 0.3 and all other previous releases.

To simplify the job of updating existing classes to Swing's new naming conventions, Release 0.4 included a "ClassRenamer" utility that can be used to convert Swing 0.3 source code to Swing 0.4. That ClassRenamer tool is also included in this release. For more details, see the "What's New" section on the Introduction page.


Where Has All the (IFC) Technology Gone?

Looking at Swing, it is hard to see where the IFC technology is. How does Swing make use of the Internet Foundation Classes technology which Netscape pioneered and which JavaSoft and Netscape have reportedly worked together on as IFC has been incorporated into Swing?

These are a few areas in which IFC technology is used:

  • JInternalFrame
  • Keyboard UI
  • The Repaint Manager
  • Autoscrolling
  • Icons
  • DebugGraphics
  • JSpringLayout
  • The Timer
  • Rose L&F
  • The Target Manager
  • EventQueue.

Left Arrow Up Arrow Right Arrow


Version 0.5. Last modified 10/1/97.
Copyright © 1995-97 Sun Microsystems, Inc. All Rights Reserved.

Sun Logo