Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8024195
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 4, 20262026-06-04T22:47:38+00:00 2026-06-04T22:47:38+00:00

I am just about done with our exam project, and when looking back at

  • 0

I am just about done with our exam project, and when looking back at what I coded, I feel I did quite alright. Though, stuff could obviously always be alot better. But maybe that’s just me.

I was in charge of coding the GUI, and coupling it with the application logic. When making the GUI I made the decision that I would make a class file for every window (e.g. LoginWnd.java), and actually build the GUI in the constructor. I would initalize everything and set all data inside this constructor.

Then in order to navigate through the application, I would set actionlisteners on the jbutton. For example, in SearchWnd, hitting the “Search” jbutton would create a new object of ResultWnd with some specified parameters.

Now i’m kinda wondering: Was this design decision bad in any way? Are there any design paradigms that I should’ve been aware of?

Thanks.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-04T22:47:40+00:00Added an answer on June 4, 2026 at 10:47 pm

    Your approach sounds fine overall – as long as it works you’ve achieved the main goal! So my comments here are more about fine-tuning / broader design aspects.

    There’s nothing fundamentally wrong with doing GUI construction in the constructor providing that the GUI doesn’t subsequently change during program execution. The rationale here is that constructors should be reserved for “one-off” construction activities. So it’s probably fine for dialog boxes and suchlike that have a pre-determined layout.

    If you have a more dynamic GUI where components are frequently being added and removed throughout program execution, then I’d strongly suggest moving this to a set of methods outside the constructor so that they can be called independently of object construction. The constructor itself can still call these methods if needed to do initial setup, but subsequently you have the ability to call these methods later to add new components, refresh the layout etc.

    The good news is that this stuff isn’t hard to refactor if you get it wrong – it’s usually trivial to pull setup code out of a constructor into separate methods later if needed.

    Another thing to be aware of is the oft-repeated mantra “prefer composition to inheritance”. That is to say, if you can make your GUI work by assembling existing components rather than inheriting and overriding your design will probably be better/more easy to maintain in the long run. For example, I don’t think I’ve ever subclassed JFrame – it’s almost always cleaner to just add JPanels within it that contain all the application-specific components.

    Finally, be cautious of coupling your GUI components too closely to your application logic. Swing actually does a pretty good job of encoraging you to separate out your data model from the presentation code (e.g. with ListModel and friends). It’s worth studying and understanding that approach. The point is that you should usually build GUI components in a way that is fairly application-agnostic, but give them application specific behaviour by connecting them to the right data model and event handlers etc.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm just about done a webpage but there is one bug in Mobile Safari
I am just about done writing a killer application for the mac, however I
Hi just about to get the dev team to start looking at the next
We are just about to implement full blown TFS 2008 across our development team
I'm just about done with a WCF Service that allows me to remote database
I've done a bit of research, and seem to find answers just about 4
During our initial development we haven't worried about scaling concerns, just getting the bare
I'm just about to write a query that includes a WHERE isok=1 . As
I'm just about getting into WCF ; but from what I've read so far,
I'm just about to write my first application in a duck typed language (Groovy).

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.