jvider - Java GUI Builder logo Story - Visual Interface Designer for JAVA™


About a year ago I started working on a project to create a client database and registration system for dental clinic. The project is quite big (it just moved to development stage 3 and is already successfully used for over half year). But the main thing is it has really complicated GUI screens.

My experience with building GUI's with Java was limited at the time. I have always used Swing layouts and coded manually. It works well for small screens, but the higher the complexity of the screen the more difficult the task becomes. I started looking for tools to make my life easier.

My finding was that all the tools that I could get on the net fall into one of the categories:

  • they don't do what I need at all;
  • do it poorly and are buggy and not handy;
  • if they can do it bearably then I HAVE to switch to some development environment of theirs (something I don't do only because it has one useful utility);
  • I have to start using some custom layout library and be bound with it forever (again, something I don't do every day).

Oh, I forgot to mention the tools that use absolute positioning. I ruled them out from the very beginning because ABSOLUTE POSITIONING IS BAD for many reasons.

Another thing I noticed about GUI builder tools is that they all try to do the impossible - to replace the need of coding the source code. The idea may seem beautiful for someone new in the field, but experienced programmer knows that it doesn't work this way and never will.

So, I don't need a tool that allows me to select the color of JButton because I know that I will still change it 10 times more later during the development process. And for me typing setBackground(new Color(...)) seems far easier then finding out where the hell it is or locating it in an endless list of properties most of which I will not use at all or use once or twice in my lifetime.

So, I put the guidelines for the tool I need. It should:

  • allow me to easily lay out the components in a way I need;
  • be visual and flexible to move around, change size and position of the components;
  • set main properties for the components (like title and variable name) so I can easily locate them in the source code;
  • not use absolute positioning;
  • use only standard Swing components;
  • be independent of any "big software" that I'm not planning to switch to;
  • allow saving and loading of created designs;
  • allow testing the designs on the fly without compiling.

That's how jvider was born. Enjoy!

January 27, 2003
Linas Urbonas
UAB "Midpoint systems"

Copyright © 2003-2012 Midpoint systems icon UAB "Midpoint systems". All Rights Reserved.
All brand names and products names are trademarks or registered trademarks of their respective companies.