Easily Skinnable Swing Components
By Dusan Pavlica on Jan 14, 2008
The main idea of skinnable Swing components came up after James Gosling's presentation of Matisse (new GUI builder in NetBeans) at JavaOne 2005. Some people from audience were really excited about cool components used in the demo of the MP3 player. The components looked like rounded buttons with nice skins and completely different than the typical ugly Swing components. I would say the presentation was successful because of the cool look of the components.
So then, within the scope of the Innovation project (project focused on innovative ideas and design approaches in Prague's xDesign Group), we were thinking about some improvements of Matisse related to the ability to change components' skins easily. Then Jan Taus joined our team and was willing to work on it as a part of his Master's Thesis. I led him to implement it in a way that the user can re-skin a component easily without needing to write code.
He created an experimental NetBeans plug-in, which allows the user to set new skins of components in a visual way without coding. The user can prepare skins and even animations in a visual editor (e.g. Photoshop) and then can easily apply them to components in the Theme Editor.
We presented all of the results of our research and experimental version of the Theme Editor to the NetBeans development team. They were interested in it and we discussed how to utilize the idea of easy skinning in NetBeans and the JavaFX project too. In my opinion, the improved version of the Theme Editor (e.g. its UI can be polished or it can be integrated into the Matisse better) could increase the popularity of Matisse or support the success of JavaFX.