Technical Articles and Tips

»  search tips 

Technical Articles and Tips


  Swing Sightings #19!

October 31st, 2003

Boo! Swing Sightings #19 up and live, just in time for Halloween!

As always (!) lots of nifty apps this time around, including a music management application from Rio, a remote-control internet labratory controller from eLab, and a spectacular update of DBVisualizer!

Click here to go to Swing Sightings.


  2004 JavaOne (SM) Conference Call for Papers Is Open

October 17th, 2003

If you've ever thought about presenting at the JavaOne Developer Conference, here's your chance!

Have a secret for developing great programs with Swing GUIs? Talk about it in a Desktop session. Have a great IDE? Consider a session in the Tools category. The conference will be in San Francisco in late June, 2004; the deadline for session proposals is November 21.

  JavaDesktop: A New Developer Community

October 13th, 2003

JavaDesktop: A New Developer Community The web site is for everyone who develops client GUIs using the J2SE platform. It features forums, projects, blogs, technical articles, and more!

Click here to go to the JavaDesktop front page.
Click here to go directly to the forums.  

  Swing Sightings No. 18

October 11th, 2003

The new Swing Sightings column is one of the most eclectic we've produced in a while. We've got a pirate game for the kids (Yohoho!), a crossword puzzle game for English language students, not one but two photo gallery apps for digital photo fans, a collaboration tool from "Uncle Dave Moffat", an EBay auction monitor, tools for creating database applications, web applications, fractal movies, and one for visualizing International Automotive industry ASAM-CEA standard measurements. There's a new Java desktop (become a POD people), a generic database front-end, an AOK spreadsheet, and to top it all off: an online game called FantasyHunt with real animals, solar powered robot cameras, and "bullets".

Click here to go to Swing Sightings #18

  Swing Sightings No. 17

August 26th, 2003

Swing Sightings 17 is here! Two sightings in one month, a record for us! ;-). This time check out a trio of MineSweeper apps, as well as very cool (and complete!) desktop suite from CleverCactus. Also up is nifty online baseball game called "Head2Head". And not to be outdone in the geek department, we have a great memory profiler from YourKit LLC. Have fun!

Click here to go to Swing Sightings #17

  Swing Sightings No. 16

August 5th, 2003

Swing Sightings has just arrived! Lots of fun apps this month: experience - a free project management software. Also an impressive Java debugger from Bil Lewis called the "Omniscient Debugger" which lets you travel backwards or forwards through the app's lifetime. Also not to be missed is Wheel 'O Yum, which solves the age old dilemma of "what do we eat for dinner tonight?".

Click here to go to Swing Sightings #16

  An Update to the Swing Tutorial

May 19th, 2003

We have received many requests to publish more information on how to use the data transfer and focus subsystems. We are happy to announce that the Swing Tutorial has just released an update that includes pages on data transfer and focus, as well as updates to the SpringLayout page and many component pages.

Click here to see a list of updates to the Swing tutorial.

  What's new in 1.4.2 - A JDC Chat with the Swing, Plugin, & JVM Teams
  Swing Sightings No. 15

April 30th, 2003

Swing Sightings #15 has finally hit the street! There's a big variety of applications in this column, from the PitCommand applet for viewing live NASCAR races, to a browser for the Koran, and more than one tool for creating XHTML content for web browsers. There's also a new game applications for managing digital video and another for managing animal shelters, a suite of pure AWT apps for engineers, and a graphics system for creating paper doll applications. You'll probably read about it all here first!

Click here to go to Swing Sightings #15

  Swing Sightings No. 14

February 26th, 2003

Swing Sightings #14 is live! Lots of goodies this time around, including a "transport management system" from TSS that schedules and tracks trucks and warehouse deliveries - and now includes a J2ME wireless client! Also up is a nifty HTML editor from Sferyx. And last (but never least) some games: a bunch of Tetris variations from 2M Games, as well as a pseudo-game/harmonica training app (we kid you not, you've gotta see this!) that lets you blow up asteroids by playing the harmonica, from the Harmonica Game Company. This last one received rave reviews from our editor's kids!

Click here to go to Swing Sightings #14

 New Encyclopedia Britannica using Swing!

February 26th, 2003

The 234-year-old Encyclopedia Britannica took an important step forward -- from Web site to CD-ROM and DVD -- using both J2SE™ and J2EE™.

Click here to read the article!


  Using Swing & The Java 2D API To Create Cool User Interfaces

February 7th, 2003

The number one question that we've received in feedback to our rich client demos at the 2002 JavaOne conference is "How do I make my apps look like that?" This article begins to answer that question by showing how to incorporate rich visual effects, or "eye-candy", into your application.

Illustrated with code samples, it demonstrates the ease of plugging into the Swing paint system, and presents some of the many advanced rendering techniques that are possible with just a few lines of 2D code.

Click here to read the article.

  Chat with the Performance, Swing, and 2D teams, Part 2!
  Swing Sightings No. 13

December 24th , 2002

Ho Ho Ho! Swing Sightings #13 is live, just in time for the holidays!

This edition marks the debut of several new application categories: archaeological specimen viewers, numerical unit converters, and coal mine planning tools! You'll also find database viewers, financial apps, an XML editor, and more.

Click here to go to Swing Sightings.

  High Performance Frequently-Updated JTables

December 2nd, 2002

One common type of application features a JTable with frequently updated data. This style of application is often found in the financial industry, but it can crop up in other industries as well. In this article we will explore techniques for improving the performance of this style of application, affectionately called "Christmas tree" applications, because the rapid updating of their GUIs resembles blinking lights on holiday trees.

Click here to read this article.

  Swing Sightings No. 12

December 2nd , 2002

Swing Sightings #12 is up!

New Swing Apps and tools this month include: the Alloy L&F from Incors, a dictionary application named (surprise!) JDictionary, and very cool secure-email/chat/file-sharing client from CryptoHeaven.

Click here to go to Swing Sightings.

 Your input wanted for JavaOne 2003!

November 5th , 2002

Planning for this years JavaOne is already under way. To help us make a memorable JavaOne we need your help: we want to know what you want us to talk about!

Confused about the RepaintManager? Not sure about a particular feature? We want to know!

Contact the Swing Team.

Besides the presentations that WE are planning to do at JavaOne, we (and the whole Java community) would like to hear from YOU.

Do you have something you would like to present? A session about your application, development tools and processes you think are worth sharing, ways of using JFC APIs that make your apps better, feature comparisons, whatever; share them with the world! (or at least that portion of the world that will be at JavaOne...)

Time is running out though! Proposals are due by Friday 11/08/2002. However, all you need by Friday is to submit an abstract of your presentation:

Thanks, and we hope to see you at JavaOne!

  Swing Sightings No. 11

October 18th, 2002

Swing Sightings #11 up!

We've found some pretty nifty apps this month, including Morpheus - a hugely popular GNUtella client, a really nice email client called Columba, and also a store explorer applet from Cycle23 that's used at a rather popular website. :-)

Click here to go to Swing Sightings.

  High Performance Graphics with Java2D

October 18th, 2002

Performance is always an issue for graphics programs. Rendering complex shapes and patterns on a display requires iterating through the pixels and calculating values for each of them. Loading an image and performing a filter operation on it sometimes requires allocating a large block of memory. When using these complex shapes, patterns, and images in an animated application, fast and reliable rendering can be difficult to acheive. This article discusses improvements in Java2D rendering in Java™ 2 SDK, version 1.4 and how you can take advantage of them.

Click here to read the article.


  Painting with Fill Objects

September 17th, 2002

At the 2002 JavaOne™ we showed our vision of a Rich Client Using Web Services, in the form of a Calender Client application that connected to the iPlanet calender service. In this article we will share how to implement some of the cool painting effects seen in the demo.

Click here to read the article.


  Using I18N Input Methods on the Java TM Platform

September 12th, 2002

Do you know how many characters are defined in Unicode Standard 3.0 , the supported version in the Java TM 2 runtime environment? Would you believe it's 49,194! However, as you may have noticed, the standard qwerty keyboard has just over 100 keys, so if you've ever wondered how the other 49,094 characters are input, this article will tell you everything you want to know!

Click here to read the article.


   Swing Sightings No. 10

August 16th, 2002

It's taken us awhile, but we finally have Swing Sightings #10 up!

This month we have lots of fun finds, including the FIFA World Cup Applet that was featured on Yahoo, some gorgeous snaps of BEA's WebLogic WorkShop, as well as educational software from Elluminate that's being installed on over 1 million student desktops!

Click here to go to Swing Sightings.


  Chat with the Performance, Swing, and 2D teams!

April 18th, 2002

The Topic: "High-Performance GUIs with the JFC/Swing API".
When: April 23. 11:00 A.M. PDT/6:00 P.M. GMT
Where: The Java Developer Connection

Learn how to accelerate the performance of applications that rely heavily on JFC/Swing graphical user interface components in this chat with Swing and Java2D engineers Scott Violet and Chet Haase, and performance engineer Steve Wilson.

So have your questions ready!

 JCanyon Demonstration

March 4th, 2001
The Grand Canyon demonstration has been updated for JDK 1.4 Beta 3 and takes advantage of several bug fixes. Full-screen mode is now supported, and the Java Web Start launch links now work properly on the Solaris Operating Environment, GNU/Linux, and Windows.

The demo illustrates the use of the new java.nio APIs in JDK 1.4 for high-bandwidth data transfer between the Java™ platform and the outside world, as applied to the 3D graphics domain. As seen at JavaOne 2001.

Click here to read the article.


   TableLayout - a new layout manager

January 24th, 2002

In this detailed article, Daniel Barbalace introduces TableLayout, a layout manager that partitions a container into a set of rows and columns. Includes full source code and downloadable jar, as well as a comparisons to GridBagLayout and GridLayout.

Click here for the full article.


 Long-Term Persistence For JavaBeans™: XMLEncoder and Persistence Delegates

January 11th, 2002

Here is the last of the articles we promised to publish on our long term persistence project (JSR-57). As promised, this article covers advanced use of the XMLEncoder, showing how it can be configured to create archives of any Java objects -- even when they don't follow the JavaBeans conventions. The article includes examples of how to make properties "transient" and how to create archives that call constructors with arguments, use static factory methods, and perform non-standard initialization steps. It also covers the mysterious "owner" property (which can be used to a link an archive to the outside world) and methods for creating internationalized archives.

Click here to read the article!

 Transcript of the Swing team online Chat!

On October 30th we had a live online chat with some of the Swing team members. What follows is a transcription of the chat, as well as some expansion on some of the issues that we couldn't cover in depth at the time of the live chat.

Click here chat log.

   The Power of Regular Expressions

October 1st, 2001

' The 1.4 release of Java TM 2 Standard Edition introduced a new flavor of the JTextField component called JFormattedTextField. This new component allows you to constrain the type of text which may be input.

Also introduced in the 1.4 release is regular expression support. In this article you will learn about using the power of regular expressions to constrain the input into a JFormattedTextField.

Click here to read the article.


   JavaOne Articles

August 22nd, 2001

This year at JavaOne there was an entire technical session track devoted to Java client work called "Java Technology for the Desktop: Web to PC". There were also many Java Client Birds of a Feather meetings and, on the exhibition floor, loads of JFC applications running on everything from big server machines to sleek iPAQ handhelds. Our own Java Client group made about 10 presentations and, in the interest of shameless self promotion, we've provided links to the on-line versions below.

595 Java[tm] Platform Printing: the Java Print Service API
600 The Java[tm] Image I/O API
1309 What's New in Java[tm] Client Technology?
1314 High Performance Graphics
1315 Focus on Focus: A Tutorial on the New API
1320 The Complete Client for the Java[tm] Platform
1339 Writing High-Performance Applications with Java[tm] Foundation Classes ('JFC/Swing')
2734 Rich Clients for Web Services
2800 AWT BOF
1334 Beans BOF

The "Rich Clients For Web Services" session was also covered by a reporter from JSC. The write-up covers some of the talk's technical content and includes many screenshots of the calendar demo that was presented at the end.

  New TSC Feature: Swing Sightings!

June 25th, 2001
One of the most exciting kinds of e-mail that the Swing/JFC team receive is a product announcement for a new JavaTM application that features a Swing GUI. A close runner-up is the URL for a new game or a compelling never-before-seen applet.

Over the years we've collected many links to this information. In fact, if you walked down the hallways here you would see the walls plastered with hundreds of screenshots from applications developed outside of Sun.

We have decided to launch a Swing Connection feature to share this bounty. Don't expect a comprehensive survey; these are applications that we bumped into or that found us. This new feature is called "Swing Sightings" and, to kick it off, we've collected ten applications that we've happened upon recently. These applications don't come with our special seal of approval (we don't have one) and, although we may have tried some of them out, we don't claim to have really tested any of them. They're here because, based on the descriptions and the screenshots on their web sites, they look like good examples of what is possible with Swing.

We intend to update these every few weeks, so check back often, or sign up for the TSC Update Notification service, where you'll receive email when we've updated The Swing Connection.

Click here to see the Swing Sightings!

  Long-Term Persistence For JavaBeans™ Components: XML Schema

June 13th, 2001

The persistence scheme added in v 1.4 uses instances of the XMLEncoder class to write out files representing JavaBeans components (beans). Every file written by XMLEncoder uses the same XML schema, regardless of the beans the file contains. In this document we describe this schema so that implementations other than XMLEncoder and its corresponding reader, XMLDecoder, can be used to write and read compatible files.

Click here to read the article.

 Update:  What's coming in Swing in Java™ 2 SDK, Standard Edition, v. 1.4

February 5th, 2001

This version of the "What's coming in Swing" article contains several updates and some new details, such as information about the new Focus architecture and the Windows look and feel update.

Java™ 2 SDK, Standard Edition, v. 1.4 is just around the corner, and we wanted to give you a preview of the coming API additions and changes. Please take a look and let us know what you think!

Click here to read the article.

 Update: Long-Term Persistence For JavaBeans™ Architecture Using XML!

January 19th, 2001

Almost a year ago we published an article about an experimental implementation of a reliable, long-term persistence strategy for JavaBeans™. This article brings you up to date, telling you what's happened since the first article was published. Most notably, we've used the Java Community Process SM (JCP) Program to pull together a community-wide effort to arrive at a formal specification of the persistence mechanism for J2SE™ v 1.4.

Click here for the full report.

 What's coming in Java 2D™ in JDK ™ 2 SDK, Standard Edition, v.1.4

January 19th, 2001

Interested in the new pipeline architecture which increases painting performance? Read about this and other Java 2D™ feature enhancements and bug fixes coming in v1.4 here.


 SwingWorker Update Fixes Subtle Bug

Sept 25th, 2000

If any of your programs use the SwingWorker class for implementing worker threads, make sure they use the latest version. The third version of SwingWorker fixes a subtle threading bug that can cause a NullPointerException.

Click here to read the article.


 Parsing HTML using the Swing Text Package

July 21st, 2000

This article shows how you can use the HTML parser outside of JEditorPane. An example is provided that shows how to use the standard HTML parser (also shipped with HotJava™) to parse a bookmarks file created by Netscape Navigator. The bookmarks file is then displayed in an editable JTreeTable.

Click here to read the article.


 Using the Swing Action Architecture

June 20th, 2000

This article discusses the Swing Action architecture and how you can use it to implement shared behavior between two or more user interface components like menu items and toolbar buttons. As a bonus, the article also discusses some new features that were added to J2SE™ version 1.3 that show how to implement simple mouse over messages on the Action component which send the description of the Action to a status bar. Last, a strategy is presented to delegate the Action.actionPerformed() method to another class.

To demonstrate these techniques, the article presents a simple application which uses button graphics and text from the Java™ Look and Feel Graphics Repository .

Click here to read the article.


 Using Timers in Swing Applications

April 13th, 2000

This article covers how one can use the Java™ timer facilities in Swing applications. The problems that timers are intended to solve are introduced in general terms and then the javax.swing and the newer java.util timer classes are covered in some detail. Both sets of classes provide roughly the same functionality so the article concludes with some guidelines for deciding which one is appropriate. And there's an example with a duck.

Click here for the full article.


 Exploring Dynamic HTML in Java™ 2 SDK, Standard Edition, v. 1.3

April 10th, 2000

The 1.3 release of the Java™ 2 Platform includes new API in the Swing text package to facilitate dynamically updating an HTML document. This article features this new API in a TicTacToe example where the game board is implemented as an HTML document. Of course, you can download the demo and its source code.

Click here for the full article.


 Java ™ look and feel Graphics Repository

March 28th, 2000

Here is a collection of toolbar button graphics which have been designed specifically for use with the Java ™ look and feel. The Java look and feel Graphics Repository These graphics conform to the Java look and feel Design Guidelines (see the " Designing Button Graphics" section of the " Application Graphics" chapter). By using the attributes accompanying each graphic, you can easily create Swing Actions. Our hope is that these graphics will save you development time and enhance your end users' experiences with your product.

Click here to see the full list of graphics and download the Zip file.


 Swing API additions coming in Java™ 2 SDK, Standard Edition, v. 1.3

February 15th, 2000

At about the time the beta version 1.3 of Java™ 2 Platform, Standard Edition was released, we published a summary of the planned 1.3 changes for Swing on The Swing Connection. The currently available version of 1.3 is called "RC2", which stands for release candidate; this means that it's very close to the final release. Our list of Swing changes for this version is the same as for the beta version; however, we've reorganized and reformatted it a little.

If you're planning on migrating your software to 1.3 and you haven't reviewed the Swing changes yet, we encourage you to do so now. There are some new additions to the API, such as support for input verification and new infrastructure for creating keyboard bindings. And if your application uses internal frames, be sure check the default visibility change at the beginning of the internal frames section.

Click here to see the full list.


 Generate Event Listeners Dynamically Using Proxies

January 21st, 2000

This brief article is an update to the article Generating Event Listeners Dynamically. Since that article was written, a new Dynamic Proxy API has been introduced in Java™ 2 Platform, Standard Edition (J2SE™) version 1.3. The new API makes it easy to create event listener classes dynamically. In the original article this was done with a special purpose runtime compiler.

Click here for the full article.


Oracle is reviewing the Sun product roadmap and will provide guidance to customers in accordance with Oracle's standard product communication policies. Any resulting features and timing of release of such features as determined by Oracle's review of roadmaps, are at the sole discretion of Oracle. All product roadmap information, whether communicated by Sun Microsystems or by Oracle, does not represent a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. It is intended for information purposes only, and may not be incorporated into any contract.

Left Curve
Java SDKs and Tools
Right Curve
Left Curve
Java Resources
Right Curve
Java 8 banner (182)