X

Geertjan's Blog

  • September 20, 2009

How to Create a GUI Editor on the NetBeans Platform

Geertjan Wielenga
Product Manager
There's a lot of interest in creating GUI editors via the Visual Library. So I'm creating a small example that will show how to do that. The palette is filled with JavaBeans that are registered in the layer, meaning that the editor is extensible via the System FileSystem. When a palette item is dropped, a BeanNode wraps the JavaBean and displays its BeanInfo in the Property Sheet, where it can be edited and changes are applied immediately.

Other nice features such as scene serialization to/from XML (as shown here), printing, and widget resizing are also supported.

The beans you see above come from here (Nervous Text bean) and here (Ticker bean).

I need to clean it up a bit and then it will be made available via Kenai, together with a tutorial in the usual place.

Join the discussion

Comments ( 5 )
  • Pavan Kumar Monday, September 21, 2009

    Hi Geertjan,

    Can't we reuse the matisse guibuilder module..instead.

    Regards,

    Pavan


  • Geertjan Wielenga Tuesday, September 22, 2009

    No, because the Matisse GUI Builder doesn't expose any APIs. You'd need to rip it out of the NetBeans sources and then somehow fit it into your own application. Probably possible, but not much fun and very difficult. (I tried and failed doing that some years ago.)


  • pavan Tuesday, September 22, 2009

    Too Bad ..that such a wonderful tool canNot be reused


  • Imad Friday, October 5, 2012

    Hi,

    Did yu manage to post that tutorial? i would very much like to build a custom gui editor, but can't find ressources.


  • Geertjan Thursday, May 7, 2015

    I recommend that you get this book:

    https://leanpub.com/nbp4beginners

    It includes an excellent chapter on the Visual Library, including a drag and drop sample like what you seem to want.


Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.