Sun Java Solaris Communities My SDN Account Join SDN
 

Java SE Desktop What's New

Many technologies, one platform
Java SE technologies provide the functionality to develop and run applications
» Get Java SE
»  Desktop Overview
 
»  Technology
 
»  Documentation
 
»  Articles
 
>  What’s New

 

Java SE Desktop What's New


The following is a chronologically ordered list of java.sun.com articles and Tech Tips related to Desktop Java, as well as a selection of Desktop Java engineer blogs. To view articles by technology area, please check out the documentation page.

Note: Only more technical/code-oriented blogs are included below. You can read many other musings from our engineers at javadesktop.org, as well as those from engineers outside Sun.

 
Subscribe to this page as an RSS feed!  

 


October 2006

 

Blog: Ethan Nicholas - What you should know about Secure Static Versioning
Lately there has been some scary-sounding misinformation spread about Java's security. Read on for the truth.

Article: Hans Muller - Swing: The Past Present & Future
Nearly a decade ago, when Java was still a fledgling portable software platform and the Tumbling Duke applet was considered cutting edge, the members of the newly minted Swing team, including yours truly, took in a packed JavaOne session given by Sun's JavaSoft president, Alan Baratz. He told the assembled multitude that our team would be delivering a new GUI toolkit in just 90 days. Although we'd been working on what was called a "lightweight toolkit" for some time, he hadn't bothered to mention the new project deadline to us. Until that moment. If there'd been enough room, we would have all fallen off our chairs...

Blog: Alexander Potochkin - Crazy JButton painters
Painters have been in Swing from the beginning!

Blog: Romain Guy: No Fluff Just Stuff: Extreme GUI Makeover slides
Here are Romain's slides for Extreme GUI Makeover talk in various file formats.

Blog:Chet Haase - Get the [arti]facts: Browser image scaling
Chet's been playing around with images in servlets and applets lately ... and discovered some odd artifacts with how browsers treat images.

Blog: Romain Guy - Java2D Gradient Performance
Gradients are one of Romain favorite Java2D tools and he's made some interesting discoveries about their performance...

Blog: Josh Marinacci - Introducing Painters
If you've been following the work on SwingLabs, the Aerith demo in particular, you may have wondered how all of the cool graphics tricks are done. We've documented the mapping and 3D parts elsewhere, but we've never discussed the custom components. If you've seen Romain's recent presentation or read his blog you may know how it's done: Painters.

Blog: Alex Potochkin - A well-behaved GlassPane
Alex shows us how to fix common mouseEvents problems for custom GlassPanes implementations, demo included.

 


September 2006

 

Blog: Shannon Hickey - Top-Level Drop with Swing and Java SE 6
Shannon demonstrates support in Java SE 6 for dropping into top-level containers such as JFrame and JDialog.

Blog: John O'Conner - U.S. Daylight Saving Time Changes in 2007
The U.S. Energy Policy Act of 2005 will change U.S. daylight saving time observance beginning in 2007. How's that affect you? Well, the Java time zone data must change...and that means a JRE update at least.

Blog: Romain Guy - Filthy Rich Clients presentation slides from JavaZone 2006
Romain gave a presentation JavaZone 2006 explaining how to create good looking Swing applications by using Java2D, animations and 3D, and also contains some performance tips.

Blog: Josh Marinacci - Source to the Magnifying Glass Hack
In response to my Meet the Engineer interview on Sun.com a reader asked for the source to my magnifying glass component (originally detailed in this blog)...

Blog: John O'Conner - Internationalization 101: Setting up a fallback font
Have you ever seen a desktop application that displays question marks or maybe block symbols instead of the correct characters? Maybe you have localized your app to Japanese or Chinese, and those characters just aren't displayed properly...

Blog: Ethan Nicholass - Java Browser Edition: New name, first steps
The fabled "Java Browser Edition" is on its way, in the form of the "Java Kernel" feature of Java 7.

Blog: Tom Ball - Munge: Swing's Secret Pre-Processor
The Swing team had run on 1.1 and 1.2 JDKs with conflicting APIs while seeming to change package names every week based on community and legal feedback. Munge is the tool we used to manage these changes easily, and here it finally is.

 


August 2006

 
Blog: Josh Marinacci - The Big One, part 2
Josh goes over lots of info on how the Windows L&F is coming in Java SE 6.0

Blog: Josh Marinacci - The Big One
Josh goes over lots of info on how the Windows L&F is coming in Java SE 6.0

Blog: Richard Bair - XMLHttpRequest and Swing
Say that again? XMLHttpRequest and Swing? Yep, you heard me right. Rich has been experimenting with implementing a version of the esteemed XMLHttpRequest (from the Ajax world, of course!) for use with Swing apps...

Blog: Alexander Potochkin - The Nightmare ButtonGroup Bug
Alex talks about one remarkable bug, remarkable because it took an unusually long time to find a good solution, and then he had to fix several regressions, and finally completely rolled the fix back.

Blog:
Scott Violet - Cut, Copy, & Paste
Scott presents a simple way to provide rich cut, copy and paste behavior in an application.

 


July 2006

 
Blog: Chris Campbell - Java 2D Trickery: Light & Shadow
In this installment Chris shows how to add a lighting effect to give flat shapes a 3D-ish appearance.

Blog: Chris Campbell - Five More Easy Pieces
Chris talks about five more Java2D goodies, this one includes a bunch of OGL tweaks.

Blog: Chris Campbell - Java 2D Trickery: Soft Clipping
The first installment in a series by Chris Campbell of Java 2D tips-and-tricks. In this first installment Chris demonstrates a technique for achieving a soft clipping effect.

Blog: Alex Potochkin - JXTransformer: The power of Swing!
Transformation of any Swing component... shear it, scale it, rotate it!

Blog: Scott Violet - BeanShell + 2D = Instant Graphics
Scott talks about using BeanShell to help you evaluate blocks of Java code during the development loop.

Blog: Josh Marinacci - Getting Started With The Aerith Mapping Component
If you've downloaded the code you may have noticed that the code for the map parts is missing. Only the binaries are provided in the JXMapViewer.jar file. That's because the map component has a brighter future than just a JavaOne demo. It is now the first component in the new SwingLabs project: The Swing Web Services components.

Blog: Rich Bair - A (Barely) Better Looking Yahoo! News Demo
Rich was greeted this afternoon by Hans Muller who begged him to upload a better looking demo for the Yahoo! News that he posted previously.

Blog: Romain Guy - JavaOne Presentations with Audio Slides
Slides and audio from the client talks at JavaOne 2006 are up!

 


June 2006

 
Blog: Rich Bair - A Simple Yahoo! News Reader
Richard's creates a simple Yahoo! News RSS reader JavaBean that youcan use in your own apps.

Blog: Josh Marinacci - Aerith Code is Out!
And is available under the BSD license...

Blog: Rich Bair - Swing and Non Blocking JAX-WS
A followup to Richard's last blog.

Article: Artem Ananiev & Alla Redko - Using Headless Mode in the Java SE Platform
This article explains how to use the headless mode capabilities of the Java Platform, Standard Edition (Java SE, formerly referred to as J2SE).

Blog: Rich Bair - Swing, JAX-WS, and JavaBeans
JAX-WS can be a bit daunting, especially for the desktop developer. In this blog Rich shows a simple web service, simple form, and how to use JavaBeans to tie it all together..

Blog: Danny Coward - Java SE Deployment Demystified
Danny talks about the twin technologies in Java SE that help with deploying your Java-based application: Java Plugin and Java Web Start.

Blog: Scott Violet - Modern Heap View
Scott presents a heap view demo that utilizes lots of pretty images and effects.

Blog: Artem Ananiev - Improved top-level icon support in Java SE 6.0
Artem discusses the new setIconImages feature in Java SE 6.0.

Article: Easier Launching of Java Web Start Applications
Chet, Thomas, and Dana wrote this article after playing around with a demo (linked from the article) to make auto-launching of a webstart app a bit easier.

Article: Joshua Marinacci - More Persistence for Client-Side Developers
Java Persistence is a powerful technology designed to store all of your data objects in a full relational database without having to write a single line of SQL. Though originally created for the server side, Josh will show you how useful it can be in client applications.

Article: John O'Conner - Creating a Sorted JList Component
This article describes how to produce sorted lists and uses a simple application to demonstrate concepts. You can download all the demo source code using the link at the end of this article.

Blog: Ethan Nicholas - Mnemonic Magic
Swing's mnemonic system is based around two properties: mnemonic (or displayedMnemonic) and displayedMnemonicIndex. They're powerful enough to do everything you need, but then again, so is machine code...

Blog: Hans Muller - JSR 296 Bows - Swing Application Framework
On Tuesday May 15th the JCP Executive Committee approved JSR 296, "Swing Application Framework". I'm the spec lead for JSR 296 and this is the JCP equivalent of a birth announcement. A rather long and meandering birth announcement, with a web started demo at the end.

 


May 2006

 
Blog: Richard Bair - The Unknown JavaBean
What is a JavaBean? What is the JavaBean design pattern? If I asked that question in a room of a hundred people, I suspect fewer than 10 would really get it right....

Blog: Danny Coward - Simplifying a Swing Application coming in Java SE 7
The Beans Binding JSR promises to simplify that large chunk of your Swing application concerned with hooking up a GUI component to the data it represents...

Blog: Chet Haase - Trigger Happy
Triggers" are a recent addition to the Timing Framework. They are a simple abstraction of event handling; they encapsulate EventListener objects that your code would typically have to implement and start or stop given animations based on events that you specify....

Article: Josh Marinacci - An Introduction to Java Persistence for Client-Side Developers
Josh gives us the skinny on how to get started on writting persistent desktop apps...

Blog: Romain Guy - Extreme GUI Makeover 2006 Edition
Scott, Shannon and I gave another session entitled Extreme GUI Makeover this year at JavaOne. As last year's, the room was packed which made us really happy...

Blog: John O'Conner - A Simple Framework for Desktop Applications
Designing desktop applications can be tricky. Threading, resource management, launching, shut down...there are a lot of things to think about. Nothing akin to rocket science, but lots of things can go wrong, and do. A desktop framework would bring much needed consistency to the task, providing structure and encouraging adoption of best practices for application design...

Blog: Scott Violet - Ease of Swing Development - Beans Bindings
A big part of what desktop developers have to write every day is component wiring code, or glue code. Glue code is the code that connects components to your application model.For example, connecting a slider's value propety to a property of the selected object in a table requires glue code....

Blog: John O'Conner - Professional Swing UIs with NetBeans
Jan Stola, Tomas Pavek, and Scott Violet discussed the motivations behind the latest graphical user interface builder available in NetBeans. The NetBeans GUI Builder, once labeled Matisse, is available in NetBeans version 5 and later...

Blog: Romain Guy - Aerith, a Very Cool Swing Demo
Check out our premier Swing demo that uses Java2D, OpenGL,Timing Framework (for animations), SwingX, Matisse, Google Maps, Flickr, Yahoo! and some other cool stuff...

Blog: Artem Ananiev - Using JPopupMenu in TrayIcon
Tray icons, which are being introduced in Java SE 6.0, have several properties and methods corresponding to image for the icon, tooltip text, popup menu and ability to show some message to the user...

 


April 2006

 
Blog: Chris Campbell - The World's Slowest Web Service
What happens when a client-side guy dips his toes in the river of web services (JAX-WS)? Come for the absurdity, stay for the tutorial.

Blog: Chris Campbell - Five Easy Pieces
Chris talks about five new Java2D goodies, including how to do fading effects using AlphaComposite, OpenGL acceleration of LCD text, and more.

 


March 2006

 
Article: John O'Conner - Using Java DB in Desktop Applications
John describes how to download, install, integrate, and deploy Java DB within desktop Java technology applications, along with a demo application called Address Book that demonstrates how to work with Java DB as an embedded database.

Blog: Josh Marinacci -Stuff to Play With: the EnumComboBox
Josh describe his recent addition to SwingLabs, the EnumComboBoxModel, a cute little class that lets you stuff enums directly into your comboboxes with no extra work.

Blog: Ethan Nicholas -Style Swing components using CSS
Using the JAXX user interface framework, you can leverage the power of CSS to control the appearance of Swing components. This is a quick look at using CSS to make a calculator example more attractive.

Blog: Romain Guy: SwingPainters Demo
Romain presents a cool demo showing off the glossy effects you can create easily in Swing with painters.

Blog: Hans Muller - MultiSplitPane: Splitting Without Nesting
One aspect of many docking GUIs is support for reconfiguring tiled subwindows by dragging shared subwindow edges. MultiSplitPane and MultiSplitLayout support arbitraily complex tiled layouts that can be reconfigured interactively and programatically.

Article: Jack Conradson - Understanding JDIC File-Type Associations
This article dives into the file-type associations feature in JDIC.

Article: Chet Haase - Time Again
In the article "Timing is Everything," Chet covered the basics of how the core Java timers work, how more feature-rich timing systems work, and how my Timing Framework project works in particular. I have recently updated that project with several new interesting capabilities, and it is time once again to talk about time.

 


February 2006

 
Blog: Scott Violet - 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: Hans Muller - A Reusable BuddyList Component
How to build a generic buddy list cell renderer. File under Advanced JList Hacking.

Blog: Josh Marinacci - 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.

Article: 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: 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 article 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.

Article: Building GUIs with SwiXml
Challenged by the complexities of GridBagLayout and the ugliness of wiring all of that GUI layout code into your application? SwiXml offers an alternative: declare your GUI in XML markup and let SwiXml wire it up to your application.

Blog: Chet Haase - 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 (an upcoming article on java.net) examines some of the solutions to those problems.

Blog: Shuna Wu - Introduction
Here's something interesting in a java.net blog: It's in both Chinese and English. Shuna Wu leads the internationalization (i18n) Quality Engineering team and plans to blog about the challenges of testing Java SE i18n, tell you about new i18n features, and ask for your feedback about i18n.

Blog: Alexander Potochkin - Debugging Swing, Part 3
The long way to find a good solution.

Blog: Shannon Hickey - Drag And Drop
Shannon Hickey introduces new support in Java SE 6 for choosing drop actions in the Swing Drag and Drop API.

Article: Using the Desktop API in Java SE 6
This article describes the new Desktop API, which allows Java applications to interact with the default applications associated with specific file types on the host platform.

Blog: Romain Guy - Make Swing... erm... Swing!  
 
Java SE Site Map
 
Update Your Java Runtime Environment
Related Resources