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?

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

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1
    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
  • 1
    If I knew I wouldn't be asking. – user3081519 Dec 26 '13 at 14:53

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.

  • +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
  • 1
    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

Not the answer you're looking for? Browse other questions tagged or ask your own question.