Take the 2-minute tour ×

I am a beginning programmer and I was recently working on some primitive GUI apps in Java.

That's where I encountered different layout managers. I browsed the web and it says that for advanced GUI creation there are NetBeans and Qt and a lot of other stuff.

My question is:

Do I really need to learn all ins and outs of layout managers and try to program without advanced layout engines to understand how they work or should I start learning NetBeans right away and skipping the whole manual layout complications? Is there any use for manual layouting beyond Java in other languages? In other words, will my road be less bumpy in the future if I go learn it in detail, or should I just forget about doing manual layouts?

share|improve this question

closed as primarily opinion-based by gnat, Doc Brown, Bart van Ingen Schenau, James McLeod, MichaelT Dec 26 '13 at 15:14


How you you think applications written in other languages deal with the issues addressed by the layout manager? By magic? –  Kilian Foth Dec 26 '13 at 8:05
If I knew I wouldn't be asking. –  user3081519 Dec 26 '13 at 14:53

1 Answer 1

up vote 4 down vote accepted

Netbeans' GUI builder is nice and other IDEs (Xcode and Visual Studio both come to mind) have similar features.

However, while good productivity enhancers, if you want to learn build GUIs; you should design them by hand for the time being until you understand how they work.

share|improve this answer
+1 to this. I remember it being a particularly enlightening journey when I learned how controls are laid out and rendered as well as how input is handled. There are some core concepts here that span the OS and hand-off to the application as well as within the application itself. Once you know these things, you can often see how the higher-level tools interact with the lower-level constructs and better debug issues or performance problems. –  J Trana Dec 26 '13 at 5:42
In addition, sometimes it is nice to know the code required if the GUI builder doesn't do what you intend immediately. E.g: Making one JPanel a static size and another expand when the window resizes. –  Hopeful Llama Dec 26 '13 at 14:58
