In my last
blog I explained how to customize the visual feedback
provided by JPasswordField. Unfortunately the first option I detailed,
specifying a character that takes no space, had a bug in it. This blog
discusses the bug and how to fix it. If you want to
cut to the chase and run the demo it can be found here.
Specifying you want JPasswordField to render a character with no space
is as easy...
on Dec 19, 2005
In my last blog I delved into why one might use
Actions. In this article I'm going to cover how Swing's components
support Actions. Eventually I'll wind up in why you should know about
Actions can be dynamically changed. This is a key feature of Action.
The most common use case is changing the Action's enabled property
based on some criteria. For example, the back button in a...
on Nov 9, 2005
In my last blog I went over how we were able to make Ocean perform as well, and in some cases better than Steel. In this blog I'm going to cover how you can change the gradients that Ocean draws.
For a quick refresher the gradients in Ocean consist of 4 distinct regions as shown here:
As with other visual properties Ocean determines how to draw this gradient from the defaults table. JButton...
on Sep 26, 2005
One of the biggest features we did in 1.5 was revamping the java look and feel by providing a new theme (OceanTheme). Love it or hate it, Ocean requires a bit more graphics support than the line primitives of yore. In order to make Ocean the default we needed to make sure performance was in line with the old theme (Steel). All of our internal tests show that we succeeded, Ocean performs as...
on Sep 6, 2005
In my last blog I mentioned we're nearly done with the baseline
API for mustang. In verifying the baseline API work I initially
took the approach of grabbing screenshots, dumping them in Paint and
zooming in. Painful to say the least! There must be a better way.
In addition to being able to inject mouse and keyboard events into the
system java.awt.Robot gives you the ability...
on May 2, 2005
In many of the past Swing team brainstorming sessions we've lamented
the layout process. Layout managers are a necessary evil of cross
platform layout and resolution independence in that they allow
components to adjust in size and position based on external criteria.
Unfortunately the existing layout managers are not the easiest thing
to use and force the developer to write code that can be...
on Apr 25, 2005
In scoping out various performance related projects for mustang we wanted to tackle one of Swing's long standing problem areas that has contributed to bad perceived performance. That is, when a Swing based app is exposed after being hidden by another application there is a noticeable delay between when the background of the window is erased and when the actual contents are painted. We've come...
on Apr 18, 2005