Swing
Beginner's Corner |
Swing is the most popular
UI toolkit amoung North American developers.
In addition to the many API available as extensions to Swing - there is
a new approach emerging to building rich internet clients - JavaFX
Script. This new approach marries the best of dynamic scripting
languages with the best of Swing. At JavaOne this past JavaFX
Script was introduced and the new community lives at openjfx.org and Sun has introductory pages at Sun's JavaFX Script site.
If you are a
beginner or intermediate developer that is new to
Swing, JFC
& Java2D programming. you may want to start by looking
at The Java Tutorial
trail
associated with Swing. Here are some 'if's you maybe interested in. If you are a complete novice check out the New to Java Center site.
If you are looking to start programming using Java2D - try the Java2D
tutorial trail.
If you want to see some of the many applications that use
Swing -
Sun maintains a list of some nice examples. Swing Sightings can be
found here.
After you have done some studying and started writing
applications - you are sure to have questions and there are forums
associated with GUI
building, Swing,
Java2D,
Java3D,
game
development and much more where you can ask questions and get
answers. There is also The
Java Developers Almanac which has a nice Swing section
which has answers to most questions you might have in the beginning.
Note you can find the complete Java Standard
Edition 6.0 API specs here.
Finding a good book is important - check out the Book section.
There are many good books on Swing and you can find more at your
local
online and offline bookseller.
One of the critical deployment topics you will be interested in is Java
WebStart. This allows you to create single-click
deployable and network- managed and updatable applications.
You can use most Java development environments to build your Swing
applications. However, NetBeans provides the most advanced UI
builder
and a complete Swing-based rich client platform (NetBeans RCP)
which can help you if you are building larger applications.
The NetBeans Rich Client Platform allows you to quickly jumpstart
your larger applications - it provides a nice way to build modules
and a nice set of built-in clientside features. Click on the download
button to get the NetBeans development environment. There are
some very nice RCP tutorials.
To get a feel for the environment - look at these Flash tutorials
and documents. To get the latest NetBeans - start by selecting the button -
Select Me!
Take some time to check out the Presentations,Tutorial and Workshops area. There are lots of very nice ways to start learning about building rich clients.
Extreme Swing |
Swing
is the most powerful Java GUI toolkit in existence. You can do things
in Swing that other toolkits like SWT are busy trying hard to reinvent.
It has also turned into a fast performing toolkit.
If you
are looking for the one, best presentation on building desktop Java applications that is both an overview and specific and comprehensive in scope - look at this great presentation. This presentation was given by Romain Guy with an introduction by Alexis Moussine-Pouchkine.
If you are into desktop Java - this is a stunningly beautiful
description of the state of desktop Java and some wonderful details
about specific features that every developer will be interested
in. Note that there are a number of parts to this. Covering
everything from an overview of the state of Java on the desktop to
specifics about building extreme Swing applications. Some great extreme
Swing presentations exist - such as this one. Another extreme Swing presentation exists here.
More recently Guy Romain and Chet Haase presented a talk, Filthy Rich Clients, at JavaOne 2007 - you can see and hear the talk here.
There was a nice Extreme GUI Makeover talk at JavaOne 2007. Chris
Campbell, Shannon Hickey and Romain Guy provide an excellent talk that
you can watch and listen to here.
At the 2006 JavaONE Conference, Scott Violet, Shannon Hickey and Romain
Guy provided a talk on making Swing apps rock in the talk Extreme GUI Makeover: Lookin Better.
Another key talk at JavaONE 2006 was Andy Herrick and Thomas Ng's talk, Deployment Tips and Tricks for using Java Web Start and Java Plugin Software.
|
JavaONE Audio Presentations |
Select to see presentations
2007
 |
Writing Testable UIs |
 |
Beans Binding |
 |
Swing in a Multithreaded World |
 |
Java 6 Platform, Java DB, Swing,
JNLP/WebStart, Java Persistence API (JPA)/Enterprise JavaBeans (EJB) 3:
The New 'Operating System' for Rich Internet Applications |
 |
Extreme GUI Makeover |
 |
Modular Programming with the NetBeans Platform |
 |
Swing Vector Graphics |
 |
Designing Scalable High-Performant Rich Clients from the Trenches |
 |
Sexy Models! An API for Declarative Data Models on the Desktop |

|
Filthy Rich Clients : Talk Dirty To Me |
 |
Easy Deployment is Finally Here |

|
Write a 3D Game in the Java Programming Language in Less than 50 Minutes |
 |
Desktop Java Technology |
 |
Form Follows Function (F3) |
 |
3D Earth Visualization with NASA World Wind |
 |
Why Spagetti is Not Tasty: Architecting Full-Scale Swing Apps |
 |
Bringing Life to Swing Desktop Apps |
 |
Being Productive with Swing |
 |
The Swing Application Framework |
 |
The Last Mile to Desktop Java Technology |
 |
One Million Applet Downloads a Day |

|
Search Inside The Music: Using Signal Processing, Machine Learning & 3D Visualizations to Discover New Music |
 |
Writing Games with Project Darkstar |
 |
Swing Vector Graphics |
 |
Swing Vector Graphics |
2006
 |
Desktop Patterns and Data Binding |
 |
Dos and Don'ts for Swing Apps |
 |
Filthy Rich Clients: Animated Effects in Swing Rich Apps |
 |
High-Performance GUIs |
 |
Deployment Tips and Tricks for Using Java Web Start and Java Plug-in |
 |
Web 2.0: Next-Generation Communities With Rich Java Technology-Based Applications |
 |
Extreme GUI Makeover: Lookin' Better |
 |
Desktop Java Technology Today: Deep Dive |
 |
Best Practices: Data Binding |
 |
Eight Ways to Be More Productive Developing Swing Applications |
 |
Large-Scale Client Deployment Using Java Web Start Software |
 |
A Simple Framework for Desktop Applications |
 |
User Interface in XML : The JAXX Framework |
 |
It's Not Over Till the Fat Client Sings |
 |
Best Practices: Data Access Strategies |
 |
Swing Threading 101: An Introduction to the Event Dispatch Thread |
 |
Testdriving the Rich Client Platforms |
 |
Java Technology on the Client |
|
|
About |
This site serves as method of tracking the latest in rich client
developments and Swing/JFC-related news and updates, as well as
providing information on the NetBeans Rich Client Platform.
If
you are interested in correcting, suggesting or offering something -
send an email here.
Please make sure to use the Subject line of Swing Pointers. You can also visit my blog at here. Note the new articles and blogs are below in the Latest Blog Entries and Articles.
|
News
and Updates (02/20/2008) |
+ JavaOne Desktop Track Available
+ Java SE 6 Update N Early Access Program
+ Java SE 6 Update 4 Available
+ Project Scene Graph released
06/01/2007
+ JavaOne Desktop Track Available
Swing Sightings (02/20/2008) |
Where do you go to see what developers are doing with Swing ? One place is Swing Sightings. Two other places is which showcases how modern Swing applications are evolving are the Aerith application which leverages web services traditionally used by web apps and shows an elegant application user interface -
and another one is Iris which is an online photo-browsing application -
And yet another place to check out what developers are doing is to visit the NetBeans Rich Client Platform site for screenshots -
The NetBeans rich client platform allows you to jumpstart application development by providing you with a ton of pre-cooked facilities.
Richer Clients |
 |
SwingLabs contains a wealth of Swing APIs that offer substantial extensions to Swing. Some examples - SwingX
is all about Swing components. It focuses both on extensions to
existing Swing components as well as brand new ones. SwingX contains a
lot of great components that you can use in your applications today. SwingX-WS introduces a set of JavaBeans and APIs for interacting with web technologies from within Swing applications. Timing Framework
is a library for making Java animation and timing-based control easier.
It can be used anywhere a time-based system is required. JDIC
aims to make Swing applications first-class citizens of current desktop
platforms without sacrificing platform independence. SwingWorker forms
the foundation for handling tasks on a background thread in SwingLabs. SwingWorker
is designed for situations where you need to have a long running task
in a background thread and provide updates to the UI either when done,
or while processing. This project is a backport of the SwingWorker API
included in Java 6. The Incubator is a place to share prototype code related to the JDNC project. The Swing Helper
project's main goal of this project is to collect, test and discuss all
kinds of useful techniques and solutions for Swing developers - such as
JXLayer which adds some neat painting effects to your application like painters, translucency and non- rectangular shape support; JXTransformer adds all sorts of powerful routines to Swing that leverage Java2D ; JXButton
makes it possible to use arrow keys to traverse focus and selection for
you buttons and a number of debugging and testing facilites.
|
 |
Scene Graph API
provides "scene graph" functionality at the Java level, as well as
providing one of the important runtime elements that the JavaFX Script
language depends upon from the underlying platform. |
 |
Bean Bindings.
Until the release of the beans binding library, it was somewhat
cumbersome to connect UI components to databases or to keep values of
component properties in sync. The beans binding library simplifies and
standardizes all of this. You can merely write a few lines of code to
establish which properties of which components need to be kept in sync,
and the beans binding library handles the rest. In the NetBeans IDE,
beans binding features are integrated in the GUI Builder, so you can
quickly get the behavior of your application coded soon after you have
established the visual design. A good example can be found here and here and here and here. |
 |
Swing Application Framework
is a prototype implementation is a small set of Java classes that
simplify building desktop applications. The prototype provides
infrastructure that's common to most desktop applications like app
lifecycle, support for managing and loading resources, support for
defining, managing and binding Actions that run asynchronously and
persistent session state. There is a nice tutorial which shows off the framework. |
 |
NetBeans Graph Library.
The Visual Library is the next generation of the original Graph
Library. Now it is designed for a general visualization with support
for graph-oriented modeling. Its focus is to become a part of the
NetBeans platform and unify the visualization (UI and API) used in
NetBeans Platform based applications. Two tutorials highlight its use :
a usage tutorial and a tutorial on how to build a Visual Database Explorer.
|
 |
Java2D.
It's easy to forget the wealth of features in Java2D - but don't. The
Java 2D API is a set of classes for advanced 2D graphics and imaging,
encompassing line art, text, and images in a single comprehensive
model. The API provides extensive support for image compositing and
alpha channel images, a set of classes to provide accurate color space
definition and conversion, and a rich set of display-oriented imaging
operators. You can start to learn about Java2D in this Trail tutorial from the Java Learning path. |
 |
JGoodies.
JGoodies focuses on Java look, UI design and usability. We provide
articles, libraries, example applications, desktop patterns and a Swing
application architecture. |
 |
Swing Depot : Component Suites.
Swing has a considerable number of component suites targeting a number
of different areas. You can find some of these listed at the Swing
Depot. |
Graphical User Interface Builder - Matisse |
There are of course many GUI Builder but the one almost everyone points
to as the one done right is Matisse. The arrival of the Matisse
GUI builder which goes under the bland name of NetBeans GUI Builder has
pretty much changed the GUI builder landscape. The NetBeans GUI
Builder has advanced GUI application support which leverages
everything Swing - including Beans Binding, the Swing Application
Framework and the ability to add new components. In NetBeans IDE 5.0,
this support was greatly enhanced with new tools (code named project
Matisse) that makes the layout design of visual forms much easier. In
NetBeans IDE 6.0, support for the Swing Application Framework and Beans
Binding technologies has been added. Ideally you might want to
start simply with a basic tutorial - Introduction to GUI Building.
Then you can continue down the trail of learning about GUI
building by going deeper into learning about how to use NetBeans GUI
Builder by visiting the Java GUI Application Learning Trail. You will find out that building GUIs is relatively easy using the NetBeans GUI Builder.
Books |
There are many Swing books, here are a few of them. You can select to see descriptions :
|
Latest
Blog Entries and Articles (10/01/2006) |
+ JavaBlogs
+ Java Desktop Community
|
Hot
Swing Blogs [work in progress] |
+ Romain
Guy
+ Joseph
Marinacci
+ Kirill
Grouchnikov
+ Hans Muller
+ Scott Violet
+ Jon Lipsky
+ Patrick Gotthardt
+ Santhosh Kumar
|
|
|