Gui Design Options? 关注
So I'm currently on the fence, whether or not to purchase a licence of IDEA... So far I absolutely love the Editor, and good old Hector. If that were the extent of things, there would be no question. However as I'm a hobbyist, I've really gotta make sure that $250 is well spent.
As I'm more interested in Desktop apps, a nice Swing GUI layout tool is fairly important. I've been working through "IDEA in Action" to try and get a feel for things, as that book is a little old it mentions a few things which have been deprecated.. XY Layout being my current concern.. Upon reading about it.. My initial thoughts were, well it's not quite Matisse, but it'll work. However not only has it been deprecated, I can't seem to find anything which would allow me to prototype/draw my GUI's. Dealing with Table Layout's requires either a whole lot of fiddling, or an initial knowledge of what my Gui is going to look like.
As it stands, the only way I can see to develop a Gui solely with the IDEA designer is to first draw it out on a sheet of paper, grid it up, then apply the design in IDEA. Surely that's not what most people do? I'm guessing if you mess with tables enough you'll get a pretanatural ability to sense where things will go and be able to design solely in your head.. Much the same as Master Chess Players who can play the game without a board.. But alas, I'm a ways away from that level of expertise. I know a few people swear by JFormDesigner and their IDEA plugin, but I simply can't justify a $400 initial outlay even if IDEA is better than NetBeans or MyEclipse.
What are the other alternatives? Is there another way to easily design UI's with IDEA? Some one please help me out here.. I really want to Love IDEA, and aside from the GUI Designer I really do. I must be missing something, what are my options here?
We are doing Swing applications since approx. 10 years and never felt the
need to use a GUI editor. Even worse, because we use custom components, e.g.
a JTable subclass, which requires further parameters in the constructor, or
component factories (to create the same looking components in the whole
application) no GUI editor could fulfill these requirements.
My recommendation: if you want to produce high-quality Swing applications,
don't use a GUI editor, but a powerful Java IDE like IDEA instead.
I think, the IDEA GUI Designer is solid for standard UIs and I have also used it with 3rd party component libraries too. I'm not sure why you think you would have to make a drawing first since the designer supports "undo" and rearranging of components.
In my oppinion, it is generally a good idea to think about the UI layout before starting the implementation work - regardless of the UI Designer you use.
The approach using the grid-style arrangement of components is not that intuitive, but once you created a few forms it's not that bad. Since most of the UIs I've done with IDEA contained forms and dialogs, a table based designed fit quite well with what I needed. When designing a form you actually want to align labels and input boxes and a grid/table-based layout works quite well in that situations.
I've tested JFormDesigner once and it is really a great UI design tool. Another tool that looks very promising is GUIDE from Mindsilver (http://www.mindsilver.com/). There is free beta available, but they have not announced a pricing yet.
What is a bit strange about GUIDE: while the application itself works quite well there seems to be not much feedback in the mindsilver forum, so I'm not so sure how well Mindsilver/GUIDE is doing ;-)
In the end, I think it really depends on the type of UI/Application you want to create.
If you need a graphic intense UI with gradients, custom shaped controls etc. you are probably better off coding the GUI stuff manually in IDEA.
If you want to create just a few views/frames with some forms in it, the IDEA Designer would be my weapon of choice, because it integrates nicely with the rest of IDEA and it's already there.
However, if you are working on a project that will feature a lot of different views/windows, a more sophisticated solution like JFormDesigner or GUIDE might be the better tool.
Being an enthusiastic IDEA user for quite some time now, I would always recommend to use IDEA for coding - regardless of the UI tool you decide to use. It's the little (and some big) differences that make IDEA stand out ;-)
If I were in your position, I'd start using IDEA for working on the project. It will help you a lot when it comes to writing code and you could start out with the IDEA GUI Designer to layout your UI. If you should decide that you need a more advanced UI tool, you could still switch to JFormDesigner since it is able to import the IDEA form-definitions or give GUIDE a try.
The only other solution to my mind would be using Netbeans with its Matisse designer - but then again you don't have the power of IDEA when it comes to coding.
[Thanks for mention, Christian. We're about to release version 1.0 from all the beta feedback we received. Look out for announcements soon.]
To re-iterate what Christian has said, there is seldom a reason not to use a GUI Builder. GUIDE was built entirely in GUIDE, and I have zero tolerance for compromise when it comes to user interfaces. GUI builders don't limit what you can build or force to you to into bad design patterns, but it does limit the ways in which a GUI can built. For example, many hand-coders resort to builder patterns to increase readability and reduce re-use boiler plate code. Some people complain that they can't use their favourite pattern of choice with some GUI builder, but really, it is best to think of using a GUI builder as a pattern in and of itself.
I'd recommend checking out our product GUIDE, JFormDesigner and Netbeans. And I'd still recommend getting a copy of Jetbrain's IDEA. It is by far the best tool for Java and other languages.