Substance (Swing) Sightings Volume 2
April 25th, 2008 | 6 Comments »The first volume of Substance sightings was published last August and featured four Swing media-oriented applications. The purpose of this series is to highlight the capabilities that Substance look-and-feel brings to Swing applications, and the second volume showcases three open-source audio players with Substance-powered UI.
The first audio player is aTunes (hosted on Sourceforge as well), and it takes advantage of a few Substance APIs. Here is a sample screenshot of aTunes under the dark Raven skin (click to see full-screen image):
And here is another aTunes screenshot under the Business Black Steel skin. Note that both screens use vertically rotated tabs (in the top left corner) and the status bar component from SwingX component suite rendered by the Substance SwingX plugin:
The final aTunes screenshot shows the UI under Arabic locale. Note how Substance handles the right-to-left orientation of title pane buttons, menus, sliders, table headers and tabs:
![]()
The second player is Jajuk (which is also hosted on Sourceforge). Here is a screenshot of Jajuk in action – note how it uses an image-based watermark:
Unlike aTunes, Jajuk uses a few custom components that are not painted by Substance (the title bars of inner docked views and some of the buttons).
The last one is Xtreme Media Player (also hosted on Sourceforge). Unlike aTunes and Jajuk, Xtreme MP uses a custom Substance skin to create a unique look for the application. Here is a screenshot of XtremeMP in action:
This application uses SwingX and the matching Substance SwingX plugin as well (for the status bar). In addition to a custom Substance skin, it also takes advantage of the Substance button shaper functionality, setting custom button shapers on the control panel buttons:
![]()
Once the application defines the contour of each button, Substance takes care of the rest, including mouse hit detection and proper animation sequences.
If you haven’t tried Substance in your application, you’re more than welcome to do so. The current stable release is 4.3, and the next 5.0 version is available in early development drops.
Related posts:
- Substance (Swing) Sightings Volume 1 As the original Swing Sightings series has lost much of the energy behind it (apart...
- Substance (Swing) Sightings Volume 3 The third volume of Substance sightings series highlights three gaming applications powered by Substance look-and-feel....
Hi Kirill, great post, I was looking for an open source player lately, because the latest Winamp releases are huge resource hogs.
aTunes with the Substance LaF feels snappy, provides great functionality and looks good, especially since native font rendering was introduced in Swing. Probably the DirectX accelerated pipeline also contributes to the fast UI.
Keep up the great work with Substance and good luck with version 5.0.
Hi Kiril
First of all- congrats with the 4.3 release, you’re a machine!
Well, on topic, these apps looks pretty cool- could only imagine how they would look under Ocean *sigh*.
By the way, even though i know you are not a NB fan, heres a little sighting for you as well from the netbeans tutorials:
http://wiki.netbeans.org/MozillaAddonDevelopment
Also Cydey has posted a tutorial about changing Look and Feel in nb earlier this year using Substance as example:
http://wiki.netbeans.org/LookAndFeel
Just wanted to pass these along as a pad on the back.
/Anders
Anders, thanks for the links. Dinosaurs … :)
It will be great if they can add a jnlp launcher for each of the apps! Otherwise these nice potential consumer swing apps will never leave the tech circle.
Hi kirill,
great release as usual.
I want to highlight some issues regarding right-to-left applications. first have a look of this application (in Arabic):
http://www.saudifree.com/up/pic20/saudifree_dbedf.png
note that these components are not adjusted very well for RTL:
- the lines in jtree
- Jtree with JCobmobox nodes
- also the arrows in the botton scrollbar
thanks in advance.
Abu,
I would appreciate if you can open a bug report in the project tracker on these issues, along with a simple test app to reproduce each one of these. Note that i can’t reproduce the issue with the scroll bar buttons (and you can see in the screenshot above that aTunes has correct buttons under RTL). Make sure that you call applyComponentOrientation and not setComponentOrientation, and this is still a problem, please create a bug report and attach a small test app.
Thanks
Kirill