Tell me some
GUI Designer for Swing/Java
Tell me some
GUI Designer for Swing/Java
Are looking someone to hire?
Take me! Take me!
i could be able to be a GUI designer in Java.
i did in eclipse..if include jars for SWT Toolkit..u can easily do programs on GUI..see the links...
Netbeans has the Matisse designer built in. The MyEclipse plugin for Eclipse also has a Matisse port. The MyEclipse port is almost very good; it isn't perfect, but I get complicated GUI's done very quickly. The Netbeans version might somewhat more stable; I haven't tried it.
The designer allows you to drag components onto your form and set their properties. It supports a number of layout managers, including one that I believe is specific to Matisse. I use GridBagLayout almost exclusively, and I couldn't do it without Matisse.
It also allows you to add your own components to the palette. I use this feature to use some special components I created (NumericTextField, MessageBar), and I also use it to create individual panels as separate forms, which I then put together on the main form.
Given that Matisse is free with Netbeans, and MyEclipse, with all its features, is $60/year, I would strongly recommend Matisse.
In addition, I would never design a complex form without a visual designer. Swing apps can look and feel great, if you take a bit of time to do them right.
One caveat: no visual designer can be learned in a day or two. Be prepared for the learning curve, months after you start using it you'll still be discovering new and better ways to work.
The same is true of hand-coding GUIs.
Darryl is right about that. But that's just a fact of life about all of Java. It's just not simple, which is why PHP and Ruby are so popular. I have, on the other hand, that once I know how to do something correctly, doing it is actually fairly easy. And Java imposes few limits on what I can get done.
I hate designers if only for the reason that it is so hard to sift through the code of newbies who use them and then don't understand why it's not working correctly. It is code that is not meant to be read by humans but instead by machines. Give me good old fashioned hand-coding any day.
Good point about generated code in general. I pretty much don't let Matisse do anything except set the initial properties. That code is always tedious, and Matisse does a good job by not mangling it.
In general, I avoid putting much code in the form class, anyway. I try to keep all logic that deals with program flow in the controller class.
I have noticed a lot of Swing code mixed in with control and model code in general, regardless of the source of the Swing code. Using separate classes doesn't require a whole lot of effort, and keeping the code in small, separate chunks is *so* much easier for anything beyond "Hello, World!". I have also found that it forces me to come up with a solid design.
Good points, Fubarable and Steve.
I would add that using a Visual Designer -- say Matisse -- in a work environment where its use is mandated (or, at least, the IDE of choice is and is likeley to remain, NetBeans) AND a good design pattern (usually MVC) is followed, can definitely improve programmer efficiency.
Amateurs and students, I feel, are better off hand-coding their GUIs.
Why? When modifications come due (and they will) you don't need the original project/folder structure (apart from package hierarchy, of course, and even that can be changed...) and can do the job on just about any computer that has an editor and compiler, or any IDE.
And a more general rule might be: if you are going to need to look at the GUI code in future, hand-code it. Designer generated code was never meant for human consumption ;)
A Java newbie using a visual designer is like someone who has never ridden a horse riding a horse that has never been ridden. Anything can, and usually does, go wrong.
But that's the everyone does. People like to do such things using few drag and drops.
It's funny, I see everyone's point. I guess my inclination is to say that Java just isn't a good language to start off in, unless you have an instructor who is willing to teach you how to use the related tools from the start.
I agree with hand-coding and compiling a couple of simple applications, just so you can learn how it works. In fact, that's how I did the majority of my programming before I moved to Java.
A good IDE and form designers make things so much easier, *once you know how to use them*. But if the instructor doesn't teach you, you don't have time to learn. I think this is true of OO programming in general.
I think Java is like a huge truck. It's very useful, but it's not the first vehicle you should learn to drive.
Actually I found that lots of instructors/teachers on Java, first lesson is all about IDE. Most of them. In first few days they advice students how to select an IDE. Ultimately what happen is students' choice is same as the instructors.
Whenever learning a new language, best thing is leaning the basis thing in difficult way. Actually designing a Swing UI by hand is not an easy task. But it's much better to get hand dirty on such things before move to an IDE.
I'm glad instructors are introducing IDE's from the start. I bit of hand-coding and compiling is a good learning experience, but it quickly becomes painful to do all the little things an IDE does.
I was wondering about the instructors; so many posters don't seem to even know what errors they are getting.
> I think Java is like a huge truck. It's very useful, but it's not the first vehicle you should learn to drive.
Well said, Steve.