Swing can be oh so sweet
March 23, 2009
If you had any doubts that Swing could deliver truly beautiful apps, then check out Dirk Lemmermann’s latest endeavor below, which is using Mac Widgets for Java. Dirk is working on a product to enable collaborative enterprise project and issue management, called “Planner’s Workbench”, which he’s aiming to release this summer. He’s really helped refine and improve the Mac Widgets for Java API, as he’s really using this stuff.
By the way, if Dirk’s name sounds familiar, that’s probably because your familiar with his powerful FlexGantt UI Framework (another really nice piece of work).
Update:
Dirk has posted more information about his app here.
March 23, 2009 at 7:41 pm
Hey, I can see a really nice Calendar Component in the fourth screen shot! :D
-Mikael
March 23, 2009 at 7:53 pm
I was impressed with the visual look of the calendar – nice work on that Mikael!
March 23, 2009 at 9:01 pm
I don’t want to be a wet towel here but these are just screen shots. The only real way to judge this would be to run the app.
How does it perform? Is drag & drop seamless? Do screen changes refresh nicely?
March 23, 2009 at 9:07 pm
I take it back FlexGantt demo was sweet.
March 24, 2009 at 12:11 am
I assume this is all faking the Mac UI? As in, if/when Apple changes Cocoa and Carbon from, say, gray gradients to slate blue gradients, these apps get frozen with the current look?
March 24, 2009 at 12:12 am
(signing up for comment subscription)
March 24, 2009 at 12:12 am
Looks awesome. I especially like the 2nd screenshot!
March 24, 2009 at 12:43 am
@Alan,
Mac Widgets for Java is 100% Swing and Java 2D, so any changes to Cocoa will result in a Mac Widgets for Java update.
-Ken
March 24, 2009 at 2:36 am
Absolutely beautiful! But if my app is cross platform do I have to develop multiple GUIs?
March 24, 2009 at 8:53 am
Very cool Apps. Gr8 work :)
March 24, 2009 at 9:08 am
@Bob,
Mac Widgets for Java looks the same across platforms for the most part.
-Ken
March 24, 2009 at 10:55 am
FYI: the Planner’s Workbench will use the MacWidgets together with the Nimbus look and feel when running on non Mac platforms. These two look and feels have enough in common so that it will look almost as good when running on Windows. However, I have to have a talk with Jasper Potts on how to create segmented buttons, though. I know that Nimbus already supports several of the Mac client properties (e.g. the different sizes) but not the ones for segmentation (first, middle, last button).
March 24, 2009 at 12:39 pm
Wow, that looks nice! How does it look on Windows?
March 24, 2009 at 1:38 pm
Thanks for the eye candy!
Inspires one to write beautifully looking apps!
Now, if also the code to create this was as beautiful (I sure hope it is).
March 24, 2009 at 2:33 pm
@Dimitris,
Dirk’s helped mature the API quite a bit, so I’m hoping you find it “beautiful”! There’s always more refactoring to be done though!
-Ken
March 24, 2009 at 4:14 pm
That calendar component sure looks great!
March 24, 2009 at 4:29 pm
Actually, there is quite a bit of the app that is already functional. As Ken said, we’re shooting for a summer release, but I guess that depends on how much of our time we can invest in it.
Re: cross platform: yes, if you’re using platform-specific widgets, you’ll look weird on other platforms. Dave Thomas (the founder of OTI, not the Wendy’s guy) once said: you can have a strong specific solution, or you can have a weak general solution, but not both (at least it’s hard).
March 24, 2009 at 4:37 pm
@Hendrik,
Yeah, I really like Mikael’s calendar component – very high fidelity!
-Ken
March 24, 2009 at 5:24 pm
How can I get my hands on the Calendar component?
I have an app that could really use that.
March 24, 2009 at 5:46 pm
Hi Eli,
You’ll find Mikael’s calendar component here:
http://www.migcalendar.com/
-Ken
March 24, 2009 at 5:51 pm
$795!! No thanks.
January 25, 2010 at 11:57 am
Thats the value of software!! I can fully understand the price, because such a component is not easy to create. And it looks and is great!
But maybe you could look at the following open source project:
http://sourceforge.net/projects/bizcal/
or even my small read only (, ugly?) free component:
March 24, 2009 at 8:46 pm
amazing post, many thanks
March 25, 2009 at 12:14 am
[…] Swing can be oh so sweet If you had any doubts that Swing could deliver truly beautiful apps, then check out Dirk Lemmermann’s latest […] […]
March 25, 2009 at 8:54 am
Looks really nice!
Of course, it has to work as good as it looks, but seems that is taken care of as well.
It seems that quite a few apps these days pops up with OS X look and feel, even on Windows (Apple’s Safari, iTunes and lately Spotify). Maybe a cross platform Aqua LAF (like Quaqua) might work?
PS: As the extreme attention to detail guy I am, the following hack will make the split pane dividers look more OS X (assuming Aqua LAF):
@Override
public void updateUI() {
// Mac OS X fix
setUI(new BasicSplitPaneUI() {
@Override
protected void installDefaults() {
super.installDefaults();
BasicSplitPaneDivider divider = getDivider();
if (getOrientation() == JSplitPane.VERTICAL_SPLIT && divider.getBorder() == null) {
Border border = UIManager.getBorder(“SplitPaneDivider.horizontalGradientVariant”);
divider.setBorder(border);
}
}
});
setBorder(null);
}
;-)
.k
March 25, 2009 at 10:48 am
Hi Harald,
I hadn’t seen Spotify, but it looks like it has a well designed UI (albeit in C++). I think a good look and feel can transcend a platform. That is, if someone came up with a better look and feel for their app than Aqua on the Mac, I think users would be OK with it.
-Ken
March 30, 2009 at 12:46 am
[…] Orr posts about an application developed by Dirk Lemmermann which looks very polished . It makes use of the Mac Widgets for Java project , and the post includes a number of screenshots […]
April 17, 2009 at 5:28 pm
nice, really nice!
April 27, 2009 at 5:55 pm
[…] Link: Swing can be oh so sweet « Exploding Pixels […]
January 20, 2010 at 4:33 pm
[…] post is an update because Collapp has been featured before on Ken Orr´s blog. Ken is the author of MacWidgets, a framework for creating Swing clients that […]