-                                Swing Pointers
               Swing/JFC, Java2D, 3D Java and Rich Client Platform Information  
  -  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 -
Download NetBeans
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.

Check out the Java In Action Presentation

More recently Guy Romain and Chet Haase presented a talk, Filthy Rich Clients, at JavaOne 2007 - you can see and hear the talk here.

See and hear the presentation 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.

Select to see presentation

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.

Go to PDF

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.

Go To PDF



 -  JavaONE Audio Presentations

     Select Listen and View to see presentations

2007
Listen and View Writing Testable UIs
Listen and View Beans Binding
Listen and View Swing in a Multithreaded World
Listen and View Java 6 Platform, Java DB, Swing, JNLP/WebStart, Java Persistence API (JPA)/Enterprise JavaBeans (EJB) 3: The New 'Operating System' for Rich Internet Applications
Listen and View Extreme GUI Makeover
Listen and View Modular Programming with the NetBeans Platform
Listen and View Swing Vector Graphics
Listen and View Designing Scalable High-Performant Rich Clients from the Trenches
Listen and View Sexy Models! An API for Declarative Data Models on the Desktop
Listen and View
Filthy Rich Clients : Talk Dirty To Me
Listen and View Easy Deployment is Finally Here
Listen and View
Write a 3D Game in the Java Programming Language in Less than 50 Minutes
Listen and View Desktop Java Technology
Listen and View Form Follows Function (F3)
Listen and View 3D Earth Visualization with NASA World Wind
Listen and View Why Spagetti is Not Tasty: Architecting Full-Scale Swing Apps
Listen and View Bringing Life to Swing Desktop Apps
Listen and View Being Productive with Swing
Listen and View The Swing Application Framework
Listen and View The Last Mile to Desktop Java Technology
Listen and View One Million Applet Downloads a Day
Listen and View
Search Inside The Music: Using Signal Processing, Machine Learning & 3D Visualizations to Discover New Music
Listen and View Writing Games with Project Darkstar
Listen and View Swing Vector Graphics
Listen and View Swing Vector Graphics

2006
Listen and View Desktop Patterns and Data Binding
Listen and View Dos and Don'ts for Swing Apps
Listen and View Filthy Rich Clients: Animated Effects in Swing Rich Apps
Listen and View High-Performance GUIs
Listen and View Deployment Tips and Tricks for Using Java Web Start and Java Plug-in
Listen and View Web 2.0: Next-Generation Communities With Rich Java Technology-Based Applications
Listen and View Extreme GUI Makeover: Lookin' Better
Listen and View Desktop Java Technology Today: Deep Dive
Listen and View Best Practices: Data Binding
Listen and View Eight Ways to Be More Productive Developing Swing Applications
Listen and View Large-Scale Client Deployment Using Java Web Start Software
Listen and View A Simple Framework for Desktop Applications
Listen and View User Interface in XML : The JAXX Framework
Listen and View It's Not Over Till the Fat Client Sings
Listen and View Best Practices: Data Access Strategies
Listen and View Swing Threading 101: An Introduction to the Event Dispatch Thread
Listen and View Testdriving the Rich Client Platforms
Listen and View 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 -

Select to see more about Aerithh

and another one is Iris which is an online photo-browsing application -
Go to the Iris web project

And yet another place to check out what developers are doing is to visit the NetBeans Rich Client Platform site for screenshots -

Go to the NetBeans RCP screenshot page

The NetBeans rich client platform allows you to jumpstart application development by providing you with a ton of pre-cooked facilities.


  -     Richer Clients 


View 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.
View 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.
View 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.
View 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.
View 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.
View 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.
View JGoodies. JGoodies focuses on Java look, UI design and usability. We provide articles, libraries, example applications, desktop patterns and a Swing application architecture.
View 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 Listen and View to see descriptions :

View Filthy Rich Clients : Developing Animated and Graphical Effects for Desktop Java Apps. 1st Edition by Haase and Guy.
View Swing. 2nd Edition by Robinson & Voobiev.
View Swing : A Beginner's Guide.  By Herbert Schildt
View Rich Client Programming : Plugging into the NetBeans Platform. 1st Edition by Geertjan, Tulach and Boudreau.
View Graphic Java 2 : Volume 2 Swing - 3rd Edition by David Geary
View Swing Hacks : Tips and Tools for Killer GUIs. By Joshua Marinacci and Chris Adamson
View Java Swing by Loy, Cole, Wood, Eckstein, Elliot


  -  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





 



Download NetBeans