Posted on Aug 20, 2008

A very late “Nimbus is Done” blog!

Wow its been crazy, we have finally finished Nimbus for 6u10 and release candidate is out there Java 6u10 RC Download, have done Java One and I am now knee deep in Java FX. I have about 10 half completed blogs and just never seem to find the time to finish them. As well as being mega busy with Nimbus and Java FX I have just moved back from California to the UK. Moving is always way too time consuming and expensive.

If you missed our talk and BOF at Java One this year here are the presentations:

Java One 2008 Nimbus Talk PDF

Java One 2008 Nimbus BOF Presentation PDF

A lot of you have been asking about the Nimbus Designer Tool that I demoed at Java One. I have been working at getting it opensourced but it is a slow bureaucratic process so I am sorry. In the mean time I thought I would try and do a couple blogs on how you can skin Nimbus your self with out the tool. It is very easy to do providing you are not worried about getting your hands dirty writing some Java 2D drawing code. You could always use images or a SVG library if you don’t fancy raw Java 2D. I would like to split the designer tool into 2 parts the first part the lets you create a Painter classes with Java 2D drawing code by drawing graphics. The second part would let you assign painters to components and generate the code to populate the UIManager defaults table. But both those parts are not hard to do your self if we help you get started so I will see what I can do.

So just a quick hello to say I am still alive, next to try and post a couple blogs on how to skin Nimbus.

SwingSet 3 with Nimbus

6 Comments

  • Willis Morse says:

    This is great news.

    So what is the current situation with Nimbus and Mac OS X? I would guess that it’s not possible to use Nimbus on the Mac since Nimbus seems to require 6u10, and 6u10 is not available on Mac. Is there any hope of seeing Nimbus run under Java 5, which is the highest practical version for commercial desktop Java app development on the Mac.

    Even some complicated workaround would be appreciated :-)

    Thanks,
    Willis Morse

  • Daniel says:

    Looking at that screenshot, I just realized what I dislike most about Nimbus – the font. With the native font rasterization in 6u10, JGoodies and Windows L&F are looking great, but I feel the Nimbus font drags the whole L&F down. I get the “something about this still looks like the 90s” feel whenever looking at Nimbus.

  • Jasper Potts says:

    Willis: Thats a good question Nimbus could be backported to Java 1.5 but I think it would take a month or more to do and I can’t see it happing in the short term with all the other stuff we are working on. I think the solution will be to wait for Java 7, we are planing on forward porting Nimbus to Java 7 later this year or early next year. There is work going on with a Mac port of Java 7 see http://landonf.bikemonkey.org/code/java/SoyLatte_Meets_OpenJDK.20080819.html so the 2 should meet I hope with a solution in the not to distant future.

    Daniel: I agree fonts are still a issue, I have been campaigning internally to help get this improved. Nimbus uses “Arial” if I can remember correctly. You can change this to any font you like with:

    UIManager.put(“defaultFont”, new Font(“Arial”, Font.BOLD, 25));
    or
    UIManager.getLookAndFeelDefaults().put(“defaultFont”, new Font(“Arial”, Font.BOLD, 25));

    not sure which is right off the top of my head by try them, both may work. Other than that Nimbus uses the same rendering as all the other look and feels. Remember you get different engines if you have ClearType turned on/off in Windows. So I might have a different setting to the one you like.

  • Willis Morse says:

    Jasper: I’m tracking Soy Latte and it’s pretty amazing. But it still sits on top of X11, which makes for a decidely non-Mac UI experience. Plus, it’s another download and install that my customers would have to do. Realistically, Soy Latte won’t be viable for commercial desktop app use until it sits on top of Cocoa. And considering how long it took Apple to get that working, I’m not hopeful for a quick solution. For that reason, I think it’s really important that Sun either backport all this fun new stuff to java 5, or work on the real problem of not having a viable post-5 solution on the Mac.

    I’m still holding out hope that Apple will contribute their Cocoa/AWT work to Soy Latte and then get out of the JVM business :-)

  • Daniel says:

    Yes, I was referring to the font face rather than any anti-aliasing settings. Arial just looks so outdated these days. It’s nice to know that it is easy to change with a single line of code, but one wonders how many developers will bother to use something other than the defaults (the same reason why we have all those awful Metal L&F apps out there). It would be great if it could automatically pick up the default system font face and size, as fonts like Tahoma and Segoe look so much better.

  • lqd says:

    Opensourcing the designer tool would sure be nice, in the meantime can we, you know, try it ? :)