Substance look-and-feel has reached the 2.1 release, with a lot of new features and a lot of bugs fixed.
The brief overview of new features:
package for drop shadows support on popup windows (menus, tooltips etc)
Heap status panel when application is run under
decorated mode has been added. The panel can be shown / hidden from the top-level frame menu. Clicking on the panel...
on Dec 12, 2005
In the recent years, Java Swing market has seen a surge in custom components that aim to provide UI widgets common in desktop applications yet missing from JDK. These components include date picker, task pane, tree table and many more. Among others, you can find those at SwingX and at JideSoft. The main problem with these components is the support of custom (third-party) look-and-feels.
on Nov 28, 2005
The Swing team has a job opening for a half-to-full-time student intern
to help us get the word out about using JavaSE for rich client apps.
Your primary job would be to help us publish a bunch of
Other work, as time permits, could be
working on the
helping us manage and improve
and if you're familiar with Swing and other rich client APIs
on Nov 22, 2005
In the original design of JavaHelp there was an emphasis on using Swing components. One of the major components in any help system is the content viewer. In JavaHelp, the content viewer is based on the JEditorPane and specifically the HTMLEditorKit and the TextEditorKit for rendering documents.
This dependency has been, according to several, the major drawback in using JavaHelp. While browsers...
on Nov 22, 2005
(Cross-posted on Married... with children)
One of OS X's pioneering features was giving check-as-you-type, right-click-suggest spell checking to every application that wanted it, free of charge. It's so nice to be able to focus on writing without worrying that I've made an obvious spelling error, or, even better, intentionally mispelling a word so I can get instant access to the right variation...
on Nov 19, 2005
I'm posting this for Swing's lead text engineer, Igor Kushnirskiy, who doesn't have a blog of his own (yet!). Here's what Igor has to say:
One of the most wanted Swing bug fixes is for 4296022 [html4.x support within a
JEditorPane]. We are planning to resolve this problem in the Dolphin
(J2SE 7.0) release.
To make sure all the important features are implemented we need your
help. We've created...
on Nov 17, 2005
It's my fault. The fact that adding a component to a JFrame required
one to explicitly add it to the JFrame's "contentPane" is my fault.
Early on in Swing's evolution we added a runtime exception that warned
developers not to write JFrame.add(myComponent) and it has been
raising hackles ever since. Graham Hamilton covered my transgression
My Favorite (Dead) Java Boilerplate
blog and I...
on Nov 16, 2005
There's been a lot of talk lately about Web 2.0, and which technologies are going to take us there. We can debate the exact definition of Web 2.0, but I'd say a rough approximation would be an application which blurs the distinction between desktop apps and web apps. Many feel that the future is ultra-thin browser based client platforms like XUL or Ajax but I think that Java has a place, and...
on Nov 14, 2005
I recently posted a screenshot of Twinkle, a demo involving Java2D, Swing and OpenGL. Here is a video showing Twinkle in action (so far):
Teaser in XViD format
Teaser in QuickTime 7/H.264 format
I will never thank enough Chris Campbell and Ken Russel for giving us these realy cool feature.
on Nov 10, 2005
For those who have missed, here are the previous two blog entries that showcase Office 12 ribbon component and discuss its Java implementation:
Who, who does not want to wear a ribbon? - introduction and the first implementation
Ribbon and smart resizing - how ribbon components are laid out during resizing
Since, the Java implementation of Ribbon has improved substantially. After you are done...
on Nov 10, 2005
This year, JavaOne Japan is during the week of November 7th in a jaw
dropping venue called Tokyo International Forum. On Tuesday
Scott Violet, Josh
Marianacci, and I made two presentations based on Desktop Java
talks from the San Francisco JavaOne: Extreme GUI Makeover, Episode 1:
Lookin' Good, and Extreme GUI Makeover, Episode 2: Runnin' Fast.
Sessions at JavaOne Japan are shorter,...
on Nov 9, 2005
The new OpenGL pipeline in Mustang let external API composite a Swing UI with an OpenGL scene. This allows JOGL to efficiently mix Swing and 3D. Twinkle, a simple photo viewer (it looks like Microsoft Max :), benefit from this. Take a look for yourself:
In this screenshot, the black background, the pictures strip on top and the caption at the bottom are drawn with Java2D. You can think of this...
on Nov 9, 2005
What makes a good conference? Okay, the quality of the candy between sessions is pretty important, but arguably of more importance (at least in justifying the cost to your boss) is the quality and applicability of the technical sessions.
In the interest of having the Greatest JavaOne Ever, I'm putting out this request: what would you like to see at the conference? What are the must-see...
on Nov 1, 2005
Quote from Sean Rhody's entry on WebServices Journal (marked by me in bold):
What is needed is the Post Browser, the Next Browser, whatever name you want to give to it. Sure, it can still run HTML (the old stuff), in a container that is essentially the same as today's browser. However it should be capable of complete look-and-feel customization via a standard markup language. It should provide a...
on Nov 1, 2005
Many apps require a 'close' icon on a tab of a JTabbedPane. The solutions I've seen so far all require manipulation of the L&F classes which can be considered bad in many respects.
There is another option that works without interference with the UI classes. It relies on a special implementation of Icon that is sensitive to the mouse itself. Such an icon can be set for each tab (setIconAt...
on Oct 29, 2005
My previous entry showed the way to provide visual indication of frames with changed content. Based on the suggestions from the comments, this behaviour has been also added to JTabbedPane.
Application should set
SubstanceLookAndFeel.WINDOW_MODIFIED client property
on the tabbed pane's Component (if it's JComponent). The value that
corresponds to unsaved state is Boolean.TRUE.
on Oct 27, 2005
Yesterday i have stumbled upon this entry from Apple developer zone. It shows how to indicate that a document window (frame in Swing application) has changed contents. The indication is similar to that of regular Mac application (dark dot in the close button). The way to accomplish this is to put a windowModified client property with Boolean.TRUE value on either the JRootPane or on the...
on Oct 20, 2005
I've been trying to think of a way to humbly announce that
no lesser authority than Evans Data Corporation has reported
that Swing is the dominant GUI Toolkit for Northern American
developers. It's difficult to present this new statistic with
the grace and humility of good sportsmanship because, after
nearly 8 years of steady growth:
"Java Swing with 47% use, has surpassed WinForms as the...
on Oct 18, 2005
Some of us recently visited the Sun offices in St. Petersburg, Russia, where we have lots of great client engineers working on AWT, Swing, and 2D. We spent most of the week working on various desktop development issues (like planning the features in the next release after Mustang).
But the most important contribution of our efforts there might be in the field of Swing Humor, a niche that has...
on Oct 18, 2005
What would you say if you opened the Options dialog in your application and it looked like this (click to see larger version):
I've blogged about adding watermark image before, but pay attention to the buttons. They are shaped like little rhinos. Don't like rhinos (or Beyonce)? No biggie, just change a few VM flags and here you go (click for larger view):
And now to the reason why would you...
on Oct 17, 2005