NetBeans 6 delivers great updates to the Matisse GUI builder. Spend a few minutes with Roman Strobl and get an expert briefing on what's new and what has changed. (sponsored)
In this, the third and final installation of Andres' Introduction to Groovy series, you learn about how Groovy handles variable numbers of arguments, named parameters, currying, and more about Groovy operators. Including, some new operators.
Swing Fuse (actually just Fuse), is a framework designed to make it easier to create your own custom desktop components. In this article, Daniel Spiewak shows you how to get started and provides sample source code you can download.
Willam Louth shows how he uses JXInsight Probes to investigate probable performance issues with code bases that he is not familiar with. He also highlights possible pitfalls in creating a benchmark, as well as in the analysis of results.
There is already a JavaLobby
thread
discussing whether using a GUI builder is a good idea. My article assumes that you want to use a GUI builder, or at least you want to give it a try.
If you are looking for a GUI builder, the article may give you a starting point. Also, I would be interested in hearing about other people's experiences with GUI builders (either the ones I listed, or other ones that you have used).
Mitch, I thought that was a really nice read. Easy and smooth, not 2 pages for each builder... a real "Here's my gut reaction to each of these" type reviews that does give a good idea of where one might want to invest some time.
From your review, and from my person assessment, it ultimately seems like if NetBeans could add some snap-to guides (I guess that's comming post4.1?) and support for FormLayout, it would be THE GUI builder.. would you say that is accurate?
I guess I have quite a different experience and thus a different perspective.
The Netbeans GUI builder is, in my opinion, an acceptable solution only if the developer group is forced to use Netbeans as the only IDE.
I work in a place where every developer is free to use whatever IDE prefers. This means that only source code based GUI builders, code generators and the like can be used.
"only source based GUI builders", I would actually assume the opposite... for example, NB is source based (I think that XML file is only used to generate the form-designer view of your UI, it's not used at runtime for anything) and the source is locked from editing outside of the GUI build in NB, so if an Eclipse user goes in and really changes up the GUI code, then the NB user fires up the GUI builder again, the form will be totally screwed up... in this environment (similar to yours?) I would think that a template-file based designer that is interpreted at run time OR optionally generated at compile time (like IntelliJ) would be the best bet... so that if you wanted to edit the GUI, you had to have the GUI builder to edit the template (form?) file otherwise there was nothing else to edit.
How do you and your team get around this? I've worked on a project where 3 people were using JB, 5 were using NB and 3 of us were using Eclipse... after creating the UI prototypes, so many people edited them that we were never able to use the UI builder in NB after that for the files because they were modified so heavily outside the builder by the JB and Eclipse folks (not their fault, just a downside of this environment).
Sorry for my poor english. With "source based GUI builders" I mean something that parses the java source to generate the visual building, like VE or Jigloo.
Netbeans is not java source based, is based on an external file.
We use Eclipse and Jigloo, so that the people who prefer to use a text based editor (Emacs) can work on the code without problems, and the others can continue to work visually.
Riyad, thanks for the comments. I think the enhancements you mentioned for NetBeans would be great... but I would hesitate to call it "THE" GUI builder, because the competition will not be standing still .
For example, you may have seen
this (PDF file)
GUI builder evaluation written in 2000. While thorough (71 pages!), many of the listed products are defunct, so my guess is that the author might draw quite different conclusions today. And the same goes for me - a year or two from now, who knows how my evaluation will change.
On the eclipse platform, you should check out Instantiation's Swing Developer. It is excellent. Many more features than Netbeans or eclipse VE. It is an excellent working environment and is easy to get up to speed quickly with it. While not free ($200) it will pay for itself in increased productivity very quickly.
Also, I think you should give JBuilder more points. It has many more features than NetBeans and eclipse VE.
Richard, regarding JBuilder, I did not find it to have any compelling advantage from a pure GUI builder standpoint over NetBeans or Eclipse (I did not look into any general IDE advantages it may have). If you think that I missed some GUI builder features of JBuilder, let me know.
Regarding Instantiations Swing Designer, I agree with you. I think I was highly misled by my initial visit to their
website
. For example, if you expand the Tutorials and Articles section in their document tree, every single article is related to SWT or JFace - there is nothing about Swing (in a product called "Swing Designer"?!). Now that I look more closely, this chapter just points to their SWT Designer site; they should remove the link from the Swing Designer site. Similarly, in the Layout Managers chapter, there is no detailed discussion of GridBagLayout. These issues led me to think that the company is too focused on SWT.
However, after spending a bit more time on the site today, I found a few interesting things. Swing Designer not only supports GridBagLayout, but also SpringLayout. Best of all, it now
supports
JGoodies FormLayout. This support was just released yesterday (the same day I posted my article!) in Swing Designer 3.0.1, so it is hot off the press.
The combination of a robust visual editor, Eclipse integration, and JGoodies FormLayout support sounds like it fits my bill just right. I will certainly do a hands-on evaluation of Swing Designer for my next project.
Your evaluation of IntelliJ IDEA says that code portability is a problem because it uses a custom layout manager. I don't think this is an issue because:
1. The layout manager is open-source
2. The layout manager is freely redistributable, even when you stop using IDEA
3. The layout manager can be manipulated with your own code if you need to extend it or use it without using the UI designer
4. The XML .form file format can be hand-edited, or a custom 3rd-party editor could be developed
Keith, I was not aware that the IDEA layout manager was open source. That would certainly ease some of the concern about "lock in". Do you have any URL for the layout manager source? Or is it just included when you download the overall IDEA package?
I would be hesitant to edit the .form files, the IDEA documentation says: "IDEA does not provide the means to open the XML source of the .form files its text Editor, and you should not edit these files manually as text." I guess you could do it as a last resort though.
Also, I got some new information. Apparently there is a
plug-in
available to convert the .form file to Java source, including the option to use GridBagLayout.
Next time I update my article I will add the information about the open source layout manager and the code generation plug-in.
Yes, the UI designer code is included in one of the download bundles (it might be in the Developer Kit, I can't remember).
You can definitely edit the files as text, I've done it before during the Early Access for the GUI designer, to remove parts that caused it to crash. Maybe they don't recommend it, but if you don't have IDEA anymore, it's definitely an option.
IMHO Swing Designer & IntelliJ IDEA deserve more attention
My two cents...
Recently I also did a review of GUI editors in Java,
to find out which on to use for our Rich GUI Client Java projcet.
We decided to use Instantiations Swing Designer inside Eclipse as the most comfortable and sophisticated concering GUI development.
Second came IntelliJ Idea, which offers in our opinion the best allround-Java-IDE including a smart and productive GUI-design-concept.(If we wouldn't already have purchased another Java IDE, then IntelliJ IDEA would be the winner for our needs).
From my own hands-on experiece,
I think Swing Designer and IntellJ Idea deserve the attention to be fully tested in such a review.
I was disappointed that you thought that FormLayoutMaker was a better choice than Abeille Forms Designer.
I was initially using FormLayoutMaker but it was just far too difficult to modify an existing form. FormnLayoutMaker also seemed to require far too much manual integration with my source code (copying and pasting code to and fro). I switched to Abeille Form Designer as soon as it was open sourced (BTW, where did Jetaware go?) and I've had no problems with it so far (3 small applications, about 10 different forms and a wizard). The designer is a pleasure to use and it is quite easy to retrieve references to individual components at runtime in order to add listeners, change properties etc. The only disadvantage is that the forms are stored in a serialised object rather than a readable/hackable text/xml file. However, I haven't had anything corrupt.
GUI Builders Evaluation and Product List
URL: FullSpan.com
At 2:59 AM on Mar 25, 2005, Mitch Stuart wrote:
Fresh Jobs for Developers Post a job opportunity
There is already a JavaLobby thread discussing whether using a GUI builder is a good idea. My article assumes that you want to use a GUI builder, or at least you want to give it a try.
If you are looking for a GUI builder, the article may give you a starting point. Also, I would be interested in hearing about other people's experiences with GUI builders (either the ones I listed, or other ones that you have used).
21 replies so far (
Post your own)
Re: GUI Builders Evaluation and Product List
Mitch, I thought that was a really nice read. Easy and smooth, not 2 pages for each builder... a real "Here's my gut reaction to each of these" type reviews that does give a good idea of where one might want to invest some time.From your review, and from my person assessment, it ultimately seems like if NetBeans could add some snap-to guides (I guess that's comming post4.1?) and support for FormLayout, it would be THE GUI builder.. would you say that is accurate?
Re: GUI Builders Evaluation and Product List
I guess I have quite a different experience and thus a different perspective.The Netbeans GUI builder is, in my opinion, an acceptable solution only if the developer group is forced to use Netbeans as the only IDE.
I work in a place where every developer is free to use whatever IDE prefers. This means that only source code based GUI builders, code generators and the like can be used.
Re: GUI Builders Evaluation and Product List
"only source based GUI builders", I would actually assume the opposite... for example, NB is source based (I think that XML file is only used to generate the form-designer view of your UI, it's not used at runtime for anything) and the source is locked from editing outside of the GUI build in NB, so if an Eclipse user goes in and really changes up the GUI code, then the NB user fires up the GUI builder again, the form will be totally screwed up... in this environment (similar to yours?) I would think that a template-file based designer that is interpreted at run time OR optionally generated at compile time (like IntelliJ) would be the best bet... so that if you wanted to edit the GUI, you had to have the GUI builder to edit the template (form?) file otherwise there was nothing else to edit.How do you and your team get around this? I've worked on a project where 3 people were using JB, 5 were using NB and 3 of us were using Eclipse... after creating the UI prototypes, so many people edited them that we were never able to use the UI builder in NB after that for the files because they were modified so heavily outside the builder by the JB and Eclipse folks (not their fault, just a downside of this environment).
Re: GUI Builders Evaluation and Product List
Sorry for my poor english. With "source based GUI builders" I mean something that parses the java source to generate the visual building, like VE or Jigloo.Netbeans is not java source based, is based on an external file.
We use Eclipse and Jigloo, so that the people who prefer to use a text based editor (Emacs) can work on the code without problems, and the others can continue to work visually.
Re: GUI Builders Evaluation and Product List
Oh ok I see what you mean, thanks for clarification.Re: GUI Builders Evaluation and Product List
Riyad, thanks for the comments. I think the enhancements you mentioned for NetBeans would be great... but I would hesitate to call it "THE" GUI builder, because the competition will not be standing stillFor example, you may have seen this (PDF file) GUI builder evaluation written in 2000. While thorough (71 pages!), many of the listed products are defunct, so my guess is that the author might draw quite different conclusions today. And the same goes for me - a year or two from now, who knows how my evaluation will change.
Re: GUI Builders Evaluation and Product List
On the eclipse platform, you should check out Instantiation's Swing Developer. It is excellent. Many more features than Netbeans or eclipse VE. It is an excellent working environment and is easy to get up to speed quickly with it. While not free ($200) it will pay for itself in increased productivity very quickly.Also, I think you should give JBuilder more points. It has many more features than NetBeans and eclipse VE.
Re: GUI Builders Evaluation and Product List
Richard, regarding JBuilder, I did not find it to have any compelling advantage from a pure GUI builder standpoint over NetBeans or Eclipse (I did not look into any general IDE advantages it may have). If you think that I missed some GUI builder features of JBuilder, let me know.Regarding Instantiations Swing Designer, I agree with you. I think I was highly misled by my initial visit to their website . For example, if you expand the Tutorials and Articles section in their document tree, every single article is related to SWT or JFace - there is nothing about Swing (in a product called "Swing Designer"?!). Now that I look more closely, this chapter just points to their SWT Designer site; they should remove the link from the Swing Designer site. Similarly, in the Layout Managers chapter, there is no detailed discussion of GridBagLayout. These issues led me to think that the company is too focused on SWT.
However, after spending a bit more time on the site today, I found a few interesting things. Swing Designer not only supports GridBagLayout, but also SpringLayout. Best of all, it now supports JGoodies FormLayout. This support was just released yesterday (the same day I posted my article!) in Swing Designer 3.0.1, so it is hot off the press.
The combination of a robust visual editor, Eclipse integration, and JGoodies FormLayout support sounds like it fits my bill just right. I will certainly do a hands-on evaluation of Swing Designer for my next project.
Thanks for the heads up.
Re: GUI Builders Evaluation and Product List
Your evaluation of IntelliJ IDEA says that code portability is a problem because it uses a custom layout manager. I don't think this is an issue because:1. The layout manager is open-source
2. The layout manager is freely redistributable, even when you stop using IDEA
3. The layout manager can be manipulated with your own code if you need to extend it or use it without using the UI designer
4. The XML .form file format can be hand-edited, or a custom 3rd-party editor could be developed
Re: GUI Builders Evaluation and Product List
Keith, I was not aware that the IDEA layout manager was open source. That would certainly ease some of the concern about "lock in". Do you have any URL for the layout manager source? Or is it just included when you download the overall IDEA package?I would be hesitant to edit the .form files, the IDEA documentation says: "IDEA does not provide the means to open the XML source of the .form files its text Editor, and you should not edit these files manually as text." I guess you could do it as a last resort though.
Also, I got some new information. Apparently there is a plug-in available to convert the .form file to Java source, including the option to use GridBagLayout.
Next time I update my article I will add the information about the open source layout manager and the code generation plug-in.
Re: GUI Builders Evaluation and Product List
Yes, the UI designer code is included in one of the download bundles (it might be in the Developer Kit, I can't remember).You can definitely edit the files as text, I've done it before during the Early Access for the GUI designer, to remove parts that caused it to crash. Maybe they don't recommend it, but if you don't have IDEA anymore, it's definitely an option.
IMHO Swing Designer & IntelliJ IDEA deserve more attention
My two cents...Recently I also did a review of GUI editors in Java,
to find out which on to use for our Rich GUI Client Java projcet.
We decided to use Instantiations Swing Designer inside Eclipse as the most comfortable and sophisticated concering GUI development.
Second came IntelliJ Idea, which offers in our opinion the best allround-Java-IDE including a smart and productive GUI-design-concept.(If we wouldn't already have purchased another Java IDE, then IntelliJ IDEA would be the winner for our needs).
From my own hands-on experiece,
I think Swing Designer and IntellJ Idea deserve the attention to be fully tested in such a review.
Have a nice day,
Lophiomys
Re: GUI Builders Evaluation and Product List
I was disappointed that you thought that FormLayoutMaker was a better choice than Abeille Forms Designer.I was initially using FormLayoutMaker but it was just far too difficult to modify an existing form. FormnLayoutMaker also seemed to require far too much manual integration with my source code (copying and pasting code to and fro). I switched to Abeille Form Designer as soon as it was open sourced (BTW, where did Jetaware go?) and I've had no problems with it so far (3 small applications, about 10 different forms and a wizard). The designer is a pleasure to use and it is quite easy to retrieve references to individual components at runtime in order to add listeners, change properties etc. The only disadvantage is that the forms are stored in a serialised object rather than a readable/hackable text/xml file. However, I haven't had anything corrupt.
Re: GUI Builders Evaluation and Product List
I got a chance to play with Abiellelie recently too, fantastic product with a terrible-to-spell name