Substance 4.3 official release
April 14th, 2008 | 22 Comments »It gives me great pleasure to announce the official release for version 4.3 of Substance look-and-feel (code-named Nairobi). The list of new features includes:
- Decoration painters
- Much better layout of menus and menu items
- Highlight painters
- Auto-scroll on scroll panes
- Visuals for disabled selected buttons
- Usability of tab close buttons
- First support for very large fonts
It was on this day in 2005 that Substance project has been created. It is now three years old and to celebrate this occasion i have redesigned the main project page to be less cluttered and a little better organized. Hope that you like it, and if you have any comments, i will be more than interested to hear your opinion.
A few screenshots of the new functionality in Substance 4.3:
New decoration painters applied to the Flamingo ribbon component:

Highlight painters on table (note a single-line border separators):

Colorized visuals of disabled selected buttons:

A button with 72 pixel font:

Click on the button below to launch a signed WebStart application that shows the available Substance features.
Related posts:
- Substance 4.2 official release It gives me great pleasure to announce the official release for version 4.2 of Substance...
- Substance 4.1 official release It gives me great pleasure to announce the official release for version 4.1 of Substance...
- Substance 5.1 official release I am very pleased today to announce the official release for version 5.1 of Substance...
- Substance 6.0 official release It is a great pleasure to announce the availability of the final release or version...
Tried it on my MacOS X Leopard box – first of all – it is SLOW! I love the interface, but not when i spot all the phases of drawing the button.
The second point – horizontal scrolling doesn’t work. I feel urge to test this =)
This is a really nice look and feel, good job Kirill! My favorite is the Sahara skin.
I also think that it is slow sometimes. I am working on Ubuntu Gutsy and the “Mixed Buttons” pane often renders in 3-4 seconds (interestingly, only first time and when you leave it for a while and go back.
However, Substance seems to be absolutely ready/usable for not overly complex GUIs
Tried it on a Windows PC and it is a bit slow too, not as slow as described by Andrey, I don’t spot all the phases of drawing the button, but still.
And about the auto-scrolling, it works only if I click directly in the viewport of the scrollpane but it does not work if I click on the mouse wheel over a component in the view port. Is there a way to listen to the mouse wheel click event in a container and all it’s children, like with the keyboard events?
Great work !
Really nice, yet I have one question: Is it possible to choose a Theme/Skin based on the System settings? For example I have my Windows XP Desktop set to the color scheme “olive green”. The sahara theme integrates really nice with this, but if someone uses the windows default colors something blueish would be much nicer.
Congratulations Kirill!
Did I tell you that Substance LaF is my favourite one?
alexp
Congrats Kirill on this great work!
Carl
Everybody, thanks for the comments. It is much appreciated.
I am aware of the performance issues. In my benchmarks (which will be part of the next release) on Windows, the rendering speed is about 6-7 times slower than Metal. I don’t have access to Mac environment, so i can’t comment on “seeing all phases of button drawing”. Talking specifically about the Substance test applications, there are two things that should be mentioned:
1. The “mixed buttons” tab is an extremely heavy load. It creates hundreds of complicated mixed themes, and the first repaint is indeed slow (as all the themes and gradients are computed). However, it is highly unlikely that a real UI will have hundreds of different mixed themes on the same screen. So, it’s mainly for debugging purposes.
2. The “big button” tab is an example of extremely large button. Rollover animations are slow at the first animation cycle (as every image is computed and cached) and indeed you can “see” every animation phase. If you have a UI with a single 1000*800 button, you might want to turn off Substance animations.
The auto-scroll is indeed only on clicking in the “unpopulated” area. This is most certainly by design as you don’t want to consume potentially action-triggering mouse clicks from the controls. You can see how different browsers (IE, Firefox) provide pretty much the same behavior. It is possible to achieve the behavior that you are describing by installing an AWTListener to trap all mouse events. Christopher (author of auto-scroll module) and I agree that this is not going to be a part of the core library.
Last question about integrating with the Windows theming system. I do not intend to provide a replacement for Windows look-and-feel. If this is your requirement, your application will need to monitor the changes to the native theme and choose the appropriate core / custom Substance skin. Note that you will need to consider that some of the desktops are using custom themes (such as supplied by WindowBlinds).
Thanks
Kirill
Congratulations on yet another great step forward, Kirill!
A question on the performance: how does this version compare to the prior version from a performance perspective?
Tito – there should not be any performance hit as compared to the 4.2 release. The performance area will be one of the most important things for the next release.
Thanks
Kirill
Sorry for hijacking your forum for this, but I can’t see an option to post in the project forum and the issue tracker times out … So feel free to move it.
I think I found a bug. When when showing and closing a JInternalFrame twice, one gets a NPE on the second closing.
***** The rest of the bug report has been submitted to the Substance issue tracker *****
Jens,
To post to the project forums, you need to have an Observer role. I have moved your report to the issue tracker – didn’t see any timeouts this morning.
Thanks
Kirill
About the “slowlyness”… well, I’m running Ubuntu 7.10 (with JRE 1.6 from the repositories), and yes, it is awfully slow here too (changing the LaF to Metal works perfect!). Besides that, Substance is really beautiful!
Regards
Marcelo
Jens, this issue should be fixed in the 4.3_02 release.
Quote: “Jens, this issue should be fixed in the 4.3_02 release.”
Awesome. You sure live up to your own rules (http://www.pushing-pixels.org/?p=50)
Kiril,
We are planning to use JIDE Framework and aboslutely want to use your L&F. Are there any known compatibility issues with JIDE and your L&F.
Great work, btw. Love the dark skins.
Best,
Nikita Ivanov.
Nikita,
The only known issue is the one documented on the Substance JIDE main page. There were a few JIDE-related issues in the past, and those have been fixed. If you run into an exception, i will be happy to fix it. Note that some JIDE components might not be consistently skinned by Substance, as i don’t provide custom UI delegates for the JIDE components (yet).
Thanks
Kirill
Kiril,
Thanks for the quick turn around. Any recommendation on frameworks like JIDE we can use? I’ve used JIDE 3-4 years ago and it was just an ‘ok’ experience. I looked at Flamingo but it lacks some of the window managment feature we would like to have. Any recommendations?
Also, we are planing on using JFreeChart and JGrpath. Any known issues with these frameworks (I mean the basic usage of them w/your L&F)?
Thanks,
Nikita Ivanov.
GridGain Systems.
Nikita,
It’s not really my place to recommend a framework for building complex applications. I know that JIDE has quite a few big customers, and some of their products are specifically targeting complex architectures. I think that you would be better asking on their forums. Also, note that Flamingo does not aim too high – it just fills the currently void gap in the components that it provides.
There should be no issues with non-component based libraries such as JFreeChart, and Substance provides APIs to query the current color settings to be used to create consistent graphs, charts and other application specific visuals. And if there are any Substance-specific issues, i will be more than happy to hear about them in the project forums, mailing lists, issue tracker or a private e-mail.
Thanks for considering Substance for your project.
Kirill
Great work!
Nilo
Hello,
First, as usual, you did a great job in Substance, congratulations !
Then, just a tiny visual inconsistency in the Flamingo Ribbon screenshot :
The “File” menu, is too close from the separator : maybe you should add 2 pixels to the gap, to match the general text layout.
Once again, really great job.
[...] release 4.3 of Substance look-and-feel available last Monday (and a few patch releases to address bugs since then), it is time to think about the next release. [...]
I think the mouse-hover animation looks very nice if you move slowly from one component to another, but it is awful if you’re moving quickly across multiple components. In the latter case the animation is distracting… maybe even choppy.
Please take a look and try making the animation more robust for both use-cases.