Java SE Desktop Articles


Core 
     

Articles 
     



Java SE Desktop Articles


 
Articles
 

Categories Technologies Featured
   • Deployment Java Plug-In, Java Web Start
   • Beans & Long Term Persistence JavaBeans
   • Graphics & Imaging Java2D, Java3D, JAI, JOGL
   • Native Desktop Integration AWT, JDIC
   • Internationalization I18N, Swing
   • Text, Fonts, & Printing Java2D, Swing
   • Using Swing Components Swing
   • Windows & Dialogs AWT, Swing
   • SwingLabs: research projects Java2D, JDIC, Swing
   • Putting It All Together Accessibility, AWT, Beans, I18N, Java2D, Sound, Swing
Deployment
Blog: Using Java Web Start to Launch NetBeans
Wouldn't it be nice to be able to show a Java source file in NetBeans by clicking on a JNLP link in the browser? Now you can.
Digging into Java Web Start
This java.net article is the second in a two-part series by Joshua Marinacci. The first article covered creating and deploying a simple app using Java Web Start. The second article shows what you need to do to make your application run safely and feel professional. Topics covered include security, optimized downloads, and polishing your program.
Getting Started with Java Web Start
This java.net article is the first in a two-part series that Joshua Marinacci promises will tell you everything you need to know to start using Java Web Start. The first article leads you through creating and deploying a simple app. The second article will cover security, optimized downloads, and how to polish your program.
Distributing Sun Java System Identity Server Applications Using Java Web Start
Take a walk through the Java Web Start technique of distributing Java applications developed with Remote Client API for Sun's Identity Server 6.0.
Beans
Long-Term Persistence for JavaBeans using XML, Part 4
This article describes the XMLEncoder and Persistence Delegates.
Long-Term Persistence for JavaBeans using XML, Part 3
This article describes the XML schema so that implementations other than XMLEncoder/XMLDecoder can be used to write and read compatible files.
Long-Term Persistence for JavaBeans using XML, Part 2
Update to the Long-Term Persistence project
Long-Term Persistence for JavaBeans using XML, Part 1
This article lays the ground work for the development of the a new persistence mechanism.
JavaBeans Technology: Unlocking The BeanContext API
Read this article to learn more about the Extensible Runtime Containment and Services Protocol API (BeanContext, for short) and see how this API is implemented in the BeanBox in the Beans Development Kit (BDK) 1.1 and how you can develop dynamically connecting Beans.
JavaBeans, Part 3: Testing Beans in the BDK BeanBox
The third part shows how to use the BeanBox application provided with the JavaBeans Development Kit (BDK) to test Beans you have built. The BeanBox provides important feedback that lets you determine if your Beans will behave as expected in third-party builder tools and application programs.
Java Beans, Part 2: Writing a Simple Bean
The second article in the series presents code that shows you how to build simple Beans, and how to package them for distribution as JAR files.
Java Beans: Part 1: Introducing Java Beans
This is the first in a series of articles introducing JavaBeans. This article presents Beans from a conceptual point of view, and introduces you to component technology, properties, methods, events, and application builder tools.
Graphics & Imaging
Blog: A Reusable BuddyList Component
How to build a generic buddy list cell renderer. File under Advanced JList Hacking.
Smooth Moves
Earlier Chet Haase blogged about some of the factors that contribute to choppy animations. Part Two of the discussion is his just-published java.net article, Smooth Moves, which examines some of the solutions to animation problems.
Blog: Make Your Animations Less Ch-Ch-Choppy
This is Part One of a two-part series. Part One examines some of the factors that contribute to choppy animations. Part Two examines some of the solutions to those problems.
Blog: Using Java2D and timingframework to animate a button
A good looking GUI needs a bit more than just fancy graphics. It needs life, animation! Java SE provides everything you need to make your Swing apps swing, but there's an easier way.
Blog: 400 Horsepower: Image I/O Improvements in Java SE 6
Image I/O performance enhancements in Java SE 6... (In)action shots of the Java Client team... And my first external Java SE 6 fix submission.
Blog: Drag and Drop Effects and Java2D Performance
While writing a new Swing/Java2D demo Romain Guy ran into very interesting issues with pictures painting.
Learning Java 2D, Part 2
The Java 2D API allows you to create some stunningly high-quality graphics. This article, part 2 in a series, discusses ways to use the Java 2D libraries to manipulate and display images using the BufferedImage and VolatileImage classes, as well as techniques for performing filtering operations
Blog: Physics Laws in Swing Applications
A nice way to improve the user experience is to mimic real world physics laws in your GUI.
Blog: Java2D/JOGL Interoperability
Details (and screenshots) on the improved Java2D/JOGL interop story in the latest Java SE 6 and JOGL builds.
Learning Java 2D, Part 1
The Java 2D API can help you create some stunningly high-quality graphics. This article, part 1 of 3, helps you become familiar with shapes, lines, and the Java 2D rendering pipeline
Introduction to Java Advanced Imaging (JAI)
This introduction to Java Advanced Imaging walks you through using the JAI API to manipulate a JPEG image.
VolatileBufferedToolkitImage Strategies
Ever wondered what kind of image to use in your application? Or what method to use in creating it? This article attempts to address this challenging topic
Intermediate Images
Learn how to create and use temporary images to speed up complex rendering tasks; cache those operations in images and just call drawImage() instead.
Lighting a 3D Scene
Learn how to light up your Java3D applications in this colorful Tech Tip.
Image Handling Basics
When doing animation, you will find that the Image class of the java.awt package serves as the base. Learn about the basics of image handling in this article.
High Performance Graphics with Java2D
Learn about how the new pipeline architecture.
Native Desktop Integration
New System Tray Functionality
Learn about the coming system tray functionality in Java SE 6.
Communicating with Native Applications Using JDIC
Learn about the basics of using JDesktop Integration Components.
Introducing JDesktop Integration Components, Part 2
This article discusses the SaverBeans SDK, which lets you write platform-independent screensavers. SaverBeans is an incubator project under the JDesktop Integration Components (JDIC) project
Introducing JDesktop Integration Components, Part 1
This article by Joshua Marinacci is all about the java.net/JavaDesktop JDIC project, which lets you integrate Java apps into native environments without writing native code
Introducing JDIC
A good overview on this new project on java.net
Internationalization (I18N)
Internationalization: Understanding Locale in the Java Platform
To be effective, an application should respect the user's language and geographic region. Learn how to use locale-sensitive objects to customize your Java technology application with the use of language, country, and variant codes
Supplementary Characters in the Java Platform
Learn how supplementary characters are supported in the Java platform, and how to make your application ready to support them
Using Input Methods on the Java Platform
Read this article to learn how to use input methods in your Swing text components.
Text, Fonts, & Printing
Understanding the Caret and Highlighter Interfaces in Swing's Text Package
Learn how the Caret and Highlighter interfaces control the view of the current text.
LCD Text: Anti-Aliasing on the Fringe
This article covers generic technology that is not specific to Java 2D, or even the Java platform. But because we just integrated this capability into Java SE 6, and we thought it would be worth going into a little more detail on the subject.
Blog: Chet Haase - Phil's Font Fixes
The bits are in: we've just integrated LCD Text support into build 39 of Java SE Java SE 6.
Validating Text And Filtering Documents
Validating and constraining text input has always been an interesting problem for those creating user interfaces for the Java platform. This article discusses the various mechanisms to accomplish this on various version of Java SE.
Printing JTables
This tip shows you how to use the new J2SE 5.0 facilities to print a simple JTable.
Using EditorKit and JEditorPane
This Tech Tip discusses several ways to load content into the Swing editor components.
Using Swing Components
Blog: Thomas Pavek - Getting to know GroupLayout, part 1
GroupLayout is a new layout manager that was developed as a Swing Labs project in conjunction with Matisse, the new GUI builder in NetBeans 5.0. Though the layout manager was originally designed to suit the GUI builder needs, it is also quite handy for manual coding. This blog will help you get up to speed with how GroupLayout works and shows you how you can start building GUIs using GroupLayout, whether you choose to use Matisse or write your own code.
Blog: Enable Dropping into Empty JTables
Shannon Hickey shows how to enable dropping into empty JTables with a single method call in Java SE 6, or a simple override in earlier versions of J2SE.
Filtering JList Models
Learn how to do Java SE 6 JTable-style filtering for JList in J2SE 5.0.
Blog: JPasswordField with an empty echo character: the fix
Learn why Scott Violet's last attempt at a password field with an empty space echo character failed and how to fix it. A demo is thrown in for good measure.
Blog: Variations of JPasswordField  
Learn how to create alternate views of JPasswordField. In the proess I'll cover portions of Swing's text architecture.
Customize Your JList Display
Swing's JList and JComboBox are great components for displaying object lists, but they don't always display user-friendly text by default. This article shows you how to customize how objects are displayed in JList components
Sorting & Filtering Tables
Learn how to use Java SE 6's new sorting and filtering JTable APIs.
Blog: TabComponents in action
Java SE 6's tabComponent feature will be the most preferable and clear solution for customizing JTabbedPane. With it, you can add a close button, use a radio button in the tab, and more.
Blog: Customizing Ocean Gradients
Learn how you can customize the gradients drawn in ocean; from the garish to the minimalist, anything is possible.
Blog: Synth Week, File Chooser
JFileChooser is a very complex component. One of its major drawbacks was its poor support for Synth in Tiger...
Blog: Synth Week, Custom Lines Style
Improving Synth doesn't mean following the path opened by other look and feel, we try to do more.
Blog: Synth Week, Components Orientation Support
Tiger introduced Synth, a cool and easy way to create custom look and feel. Unfortunately, it has some limitations. Discover how Java SE 6 addresses one of the most important ones.
Blog: Synth Week, Load Themes From Anywhere
Better late than never, here is the first installment of the Synth Week. If you like cool features and crappy drawings, click the link!
Blog: Synth Week, Bonus Day
Next week will be Synth week on this blog to present you the new features integrated to Java SE 6. And this is a bonus presentation.
Blog: Scott Violet - Ocean, Gradients and Image Caching - oh my
Get the skinny on how Ocean graidents are drawn and how we were able to make Ocean perform as well as Steel.
Blog: Synth Studio
When Romain Guy started working at Sun, he wrote three tools to help create Synth look and feels for Swing... check out those tools in this blog
Printing JTables
This tip shows you how to use the new J2SE 5.0 facilities to print a simple JTable.
Getting To Know Synth
The latest Core Java Technologies Tech Tips describes how to use the Synth look and feel, a skinnable look and feel first released in J2SE 5.0.
Customizing JColorChooser
In this Tech Tip, you'll learn how to customize areas in the color chooser component.
The Synth Look & Feel
This article provides an overview of a new look and feel, Synth, which can be completely customized without writing code, enabling even non-programmers to create new look and feels.
JFileChooser and Best Practices for Exception Handling As is the case with all things in Swing, if you don't like the look of something, you can change it. Learn how to change the look and behavior of the JFileChooser component. Also get insights into best practices for exception handling. Both topics are covered in the current issue of the Core Java Technologies Tech Tips.
High Performance Frequently-Updated JTables
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. This article explores 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.
What's coming in JDK1.4
An old preview article of Swing features additions in J2SE 1.4. Yes, it's old, but still has lots of interesting tidbits about the new features.
All about Swing Borders
This article explains how Swing's border classes work, and provides some handy tips for creating, implementing, and managing borders in Swing applications.
Windows & Dialogs
The New Modality API in Java SE 6
Learn how Java SE 6 allows greater functionality for modal dialog boxes, supporting document, application, and toolkit modality to ease the user's experience.
Blog: JFrame.add() contentPane Pain: The Complete Story
Learn why early on in Swing's evolution we added a runtime exception that warned developers not to write JFrame.add(myComponent).
Creating Wizard Dialogs with Java Swing
This article by Robert Eckstein discusses how to create a wizard — a dialog with a number of panels that the user progresses through. There is, naturally, source code and an example that you can download
Customizing Window Adornments
Customizing Window Adornments shows how to use this 1.4 feature of undecorated windows
Let There Be Z-Order
This tech tip discusses how to use the setComponentZOrder method (added in 5.0) to control component layering within a container
Changes in Working With ContentPane
This tech tip shows how the 5.0 feature of being able to avoid calls to getContentPane works, and points out that you can't always ignore the content pane.
SwingLabs: projects under research
Blog: JIC: Java Icon File Format
Tired of "dealing with a dozen png representations of a single (logical) icon as separated files"? Tired of writing/debugging the code to treat multiple files as a single logical unit? Well, Daniel Leuck, SwingLabs, and Ikayzo bring you JIC : the simple multi-resolution cross-platform icon format for Java!
Blog: Zoom Pictures with SwingLabs FX
SwingLabs FX module provides new Swing components to create interesting effects. See how to use the new ZoomableImagePanel together with other effects.
Calendar Components in SwingLabs (was: JDNC)
In this tip, you will use the Java APIs for JDNC to create simple calendar widgets.
Introduction To Tables With JDesktop Network Components (JDNC)
In this tip you will use JDNC to read tab-separated data from a file and display it in a table. You will put headings on the columns and select a subset to display. You will then filter the rows to display only those rows that meet a specific condition. Finally, you will sort this list and decorate alternating rows in different colors.
Introducing JXMonthView!
XMonthView is a component that displays a monthly calendar, very similar to what you would see in applications such as “Evolution” and “Outlook”.
JDNC: More For Less
An update on JDNC, provides an overview of the JDNC problem space and technology.
Actions Framework
This article presents an architecture that simplifies the construction and management of Swing's action-based components. The architecture allows you to easily create tool bars, menus, and popup menus from an XML configuration file as well as simplifies the process of connecting these components to your application.
Introducing JDNC
This white paper provides an overview for the SwingLabs project named JDNC, aimed at making developers more productive in creating rich, responsive Web-enabled desktop clients using Java SE.
Putting It All Together
Blog: Architecting Applications 3: the Controller
This is the third blog in a series on architecting applications. In the first blog I discussed the application I'm going to develop, how it would be architected, and briefly went over the model. In the second blog I motivated the need for an Application class that is suitable for typical Swing based Apps, as well as the functionality it should provide. In this third installment I'll go over the role of the controller as used in the MVC architecture. As promised, this blog has a runnable demo.
Blog: All hail the PropertyChangeListener
Often when building an app you need to hook multiple components together so that when one component changes others must do something. When you are building custom components, there's often the temptation to build a custom set of listeners to go along with it. Josh recommends you try property change listeners instead.
Blog: Debugging Swing, Part 3
The long way to find a good solution.
Blog: Drag And Drop
Shannon Hickey introduces new support in Java SE 6 for choosing drop actions in the Swing Drag and Drop API.
Blog: Location-Sensitive Drag and Drop in Java SE 6
Prompted by a question on his recent Swing Drag and Drop blog entry, Shannon Hickey talks about location-sensitive Drag and Drop in Java SE 6.
Blog: First Class Drag and Drop Support in Java SE 6
Shannon Hickey introduces major enhancements to Swing Drag and Drop in Java SE 6, and also recounts his recent once-in-a-lifetime visit to Saint Petersburg, Russia, with pictures from the trip.
Desktop Java Features in Java SE 6
Learn about some often-requested features that will be a hit with Java SE 6 programmers: setting file and directory permissions, obtaining disk space, adding components to tabbed pane tabs, as well as the inclusion of the SwingWorker class
Blog: Architecting Applications 2: the Application class
This is the second blog in a series on architecting applications. In the first blog Scott discussed the application, how it would be architected, and briefly went over the model. This second blog will motivate the need for an Application class that is suitable for typical Swing based Apps, as well as the functionality it should provide.
Blog: Architecting Applications 1: the model
This is the first of a series of blogs on creating a Swing app, Scott Violet motivates the app, the architecture the app will use, and quickly touches on the model. In addition it will show how easy it is to use beans persistence as a way to save and restore beans.
Blog: Debugging Swing, Part 2
Why automatic dispatching Swing methods to Event Dispatch Thread is "not so good"
The Next Wave of GUIs: Project Matisse and NetBeans IDE 5.0
Scott Violet and Tomas Pavek discuss Project Matisse, a GUI builder for JFC/Swing technology on the NetBeans IDE that makes Swing development easier than it's ever been.
Splash Screens & Java SE 6
Learn how to display a high-performance splash screen while your program is loading.
Blog: Debugging Swing, Part 1
Do we need to make it easier,or is it pretty good already?
Blog: Changes to Actions in Java SE 6 (Java SE 6)
Read up on the changes to Actions in 1.6
Blog: WeakReferences and Actions
In Scott Violet's last blog he delved into why one might use Actions. In this article learn how Swing's component support Actions, and why you should know about WeakReferences.
Blog: The Usefulness of Actions
This blog gives an overview of Actions, why you might use them, and covers a bit of the changes to Actions in 1.6
New Splash-Screen Functionality in Java SE 6
This Sun Developer Network article by Oleg Semenov and Dana Nourie tells you how to use the Java SE 6 splash screen feature to display a simple window even before the virtual machine starts. The article covers both how to show a splash screen with no code and how to, if you wish, write code that updates the splash screen once the VM has started.
Blog: Romain Guy - Synth Subtlety, Style that ComboBox
Synth is quite often subtle to use. I just spent a couple of hours trying to fix a bug and it appears it was not a bug.
Accessibility and the Java Access Bridge
Assistive technologies are hardware and software solutions that help people with physical impairments interact with computers. Learn more about the built-in Accessibility features in Java SE.
Thread Handling In Swing
Learn how to use Swing components in a threaded environment.
Timing is Everything
This article by Chet Haase covering the basics of using Timers in Java and also adds interesting functionality to the timing facilities
Asserting Control Over the GUI: Commands, Defaults, and Resource Bundles
Hans Muller wrote this article about defining Swing application behavior. It's tells how to combine low-level J2SE primitives, such as Actions, ResourceBundles, and UIDefaults, into an action framework that is appropriate for moderately large desktop Java applications
Using Swing & The Java 2D API To Create Cool User Interfaces
This article 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
Painting With Fill Objects
Details on the Swing paint mechanisms using Java2D
Using Dynamic Proxies to Generate Event Listeners Dynamically
Learn how to generate Action Listeners Dynamically
 

Back to top

Left Curve
Java SDKs and Tools
Right Curve
Left Curve
Java Resources
Right Curve
VTS OnDemand RHS Banner



Duke's Choice RHS Banner

JavaOne 2014 Replay banner