Posted on Sep 8, 2007

Nimbus almost done

Finally we are almost done with Nimbus and I am very pleased with the way it looks. There are many small details that need to be pollished and a couple of big ones like tabs but they will all be done by the time it gets released. I thought it might be time to tease you with some screenshots and details to keep you hungry.

Nimbus Buttons Windows XP
Nimbus Buttons on Windows XP

Technology

I think we have also made some exciting technology behind nimbus it’s not just another standard hard coded swing look and feel

2D Vector

All of Nimbus is rendered with 2D vector graphics, there is not one image even for all the icons. This means that the whole of Nimbus is just 56k as a packed jar which is pretty impressive for a whole rich look and feel.

High DPI Ready hd ready

As the whole of Nimbus is drawn with shapes and gradients it can be scaled to any resolution. You will not be able to control this yet but watch for it in the near future.

Based on Painters

All painting for components is done with simple stateless implementations of the Painter interface. These painters are stored in the UIDefaults table so they can be replaced if you would like to change the look of components or can be used in your own components if you would like to create a custom table header for example that looks the same as the standard Nimbus one plus something extra.

Customizable

All colors, icons and fonts are derived off UIDefaults keys so the whole UI can be customized by changing values in the UiDefaults table.

Easy to skin 3rd party components to fit in

All of the colors, fonts, icons, borders and painters are exposed through the UIDefaults table which means they are available to your 3rd part components to help you skin them in a Nimbus style.

I saved the best for last….

Nimbus was drawn graphicaly in a new tool we have been building. Almost none of it was hand coded. We have built this tool that is like a mini Photoshop or Illustrator that lets you graphicaly draw all the 2D vector graphics for each of the states of the components. Those graphics are then compiled into Java2D painting code which is exposed as simple Painters to the LookAndFeel. It has support for advanced features like sub-pixel acuracy, complex gradients, layers and layer effects like drop shadow and glow. The tool is still something internal that we have hacked together but we are working on getting it opensourced and making it into something you will be able to use. Both for creating new look and feels and for drawing painters that you may want to use anywhere in your application. I am looking forward to being able to release it.

Well I hope you are as excited as I am about Nimbus and can’t wait to try it out in your own apps. You should not have to wait to long for the first public alpha build. :-)

Nimbus OptionPanes Solaris
Nimbus Option Pane Dialogs on Solaris

Posted on Jun 6, 2007

Nimbus L&F Update

So it has been a while since I blogged about Nimbus, Java One has come and gone and I am sure you are all wondering whats happening to it. Well things have changed for Nimbus since it was announced at Desktop Matters conference in March. The initial plan was for Nimbus to be a open source project jointly run by Ben Galbraith and myself. In early prototype I hacked together thats available from nimbus.dev.java.net was very well accepted both inside Sun and in the swing community. As a result a decision was made to bring the Nimbus L&F into the JDK as part of the new Consumer JRE. What this means for is it will be available as part of the JDK 6 sometime early 2008. If you would like to read more about the Consumer JRE then read here.

Nimbus Coming Soon

I think this is amazing news for Nimbus L&F as it will hugely strengthen its adoptance. I am now working full time on getting Nimbus done with the tight deadlines to get it to you for early next year. The final version should be complete around August at which point I will try and get it released back to the open source project. Hopefully then we can get a good chunk of testing done on many different applications so we have a great version for the JDK. Ben has said that he will help with the effort to take it at that point and do a backport to run on JDK 5.

Here is my personal list of objectives for Nimbus L&F:

  • Create as high fidelity implementation of the SPEC as possible within the technical constraints.
  • Aim for 100% Java2D painted vector graphics, so no images other than icons. This is a ambitious aim as it is a lot more work than a image based L&F but will give us huge flexibility in the long run with things like high DPI monitors and resolution independence.
  • Be based on Synth so that there is finally a fully realized L&F from Sun for Synth that can be used to help other people create new Synth L&Fs.
  • Be as true feel wise to the native platform as possible within the tight deadlines. By this I mean using the native key combinations like Command C on Mac and Ctrl C on Windows for copy. Also to try and have the File Chooser for have a layout and functionalty as the native L&F one but with Nimbus skin.
  • Provide API or hooks so the Nimbus painting code can be used to aid skinning custom swing components.

These are what I would like to achieve with the Nimbus L&F, how much I can manage within the tight deadlines we will have to see. If features don’t get in then hopefully we can add them to the open source project and later back into the JDK. Animation is on the would really like to get it in pile but there as a lot to do before I get there.

I am very interested to hear any feedback you have on Nimbus, like feature X is crucial to my company using Nimbus or feature Y is not important to me. I will do my best to accommodate any good suggestions into Nimbus.

Posted on Apr 7, 2007

Nice to see people trying out Nimbus L&F

I came across this blog today and it is nice to see that people are trying out the Nimbus L&F even at this early stage.

ThinkFree Office with Nimbus

ThinkFreeOfficeNimbus

These screenshots highlight some of the problems we are going to have with getting applications to look good with Nimbus. You can see that a lot of the screen particualy the toolbars and menubar are done with custom components. This raises the issue of getting these to look good with nimbus. Hopefully we can provide some utility classes to help developers to skin custom components. For example that can paint standard gradients and symbols or get L&F colors.

Posted on Mar 23, 2007

Draft Nimbus Spec Released

I have put together a spec based on all the designs for the new Nimbus L&F. It is no where near complete yet but If you would like a glimpse at what all the components will look like when done then check out: Nimbus Spec

JProgressBar Gradients

JProgressBar Animations


Posted on Mar 12, 2007

Nimbus WebStart DEMO

Richard Bair has kindly put up a webstart demo of SwingSet running Nimbus on Swing Labs. Launch