Skip to main content

A Cool MP3 Player at the SwingLabs Exhibit

Posted by hiheiss on June 29, 2005 at 10:19 AM PDT

I’m at Exhibit #1111, Swing/Labs JDesktop
Network Components (JDNC). It’s a Sun Microsystems
project that allows experimentation with extensions
to existing Java Foundation Classes/Swing API
components, new JFC/Swing components and various desktop related technologies
like Java 2D, AWT. I’m talking now with Sun’s Roman Guy, who explains,
“We experiment with a number of projects containing JDNC and
Swing components, all of which sit on top of Swing and add extra features,
like transparency or animation. There are data-aware components that make
it very easy to find data from a database or an XML file, directly to the UI.
You have almost nothing to do -- everything is done for you in the code. You
just choose the source of code and – that’s it.”

The source code is available on,
( as part of the LGPL license.
The idea is to explore new ideas in Swing components
that may one day be part of the JDK, like various filtering,
highlighting and searching features. “It’s a playground for the
Swing team,” explains Guy.

Next to Roman, is Sun’s Richard Bair, operating a SwingLabs
desktop network component demo, who explains, “We’ve created a music
player that reads the music libraries of a very popular music player
and will play any MP3 file that you have in your library. The interesting
thing we’ve done is show off some of the cool features in our Swing X project,
especially the data binding. First, you see the finished project, a nice music
player with ‘play,’ ‘previous,’ and ‘next’ buttons and a search field. We have a
lot of music and custom cell renderers and so on. On Thursday, June 30, this will
go public as: – Joplin, as in Scott Joplin, is the name of our music
player. We have a list of music and a collapsible panel -- you
click a button and the music screen comes down as an animated effect.
As you select different songs, you notice that the title, album, and
artist genre info get updated.”

The screen displays a cool album cover.

“It looks fancy for a demo, but a lot of it is stock components
from the Swing X project we put to use here,” says Richard. “We have a
JX image panel component, which is nothing more than a component that
knows how to extract the image art from an MP3. It’s pretty simple stuff.
This table is a normal JX table and a little browser that lets you walk
in 3D through all of the album covers in your music library. It’s all
implemented in Java 2D, very fast. Once you get your song, you can listen
to it. Another screen was written in Java 2D, we call Zoomy; this panel can
be retrieved from another open source project on that is called A search field enables you to filter by artist, album,
genre and song. This will be part of James Gosling’s keynote on Thursday.”

Neat – I got a sneak preview.

Great work! Let’s hope it finds its way into the JDK. And don’t forget Gosling’s
Thursday morning keynote.

Related Topics >>