How to wait for a JFrame to close before continuin

2019-01-20 10:50发布

问题:

My program consists of 3 main 'sections'. Main function, Login form and App form. The main function should do something like: Open Login form, wait for it to close, then open App form. I can't get the waiting part to work, or rather, I don't know how I would go around doing that.

I was told by someone to use a JDialog instead and use setModal(true), but with that approach the Login form wouldn't appear on the taskbar, which is terrible in my opinion.

Another thing I considered was to open the App from inside the Login after it closes, but that feels like bad design since that'd make the Login form non-reusable.

So, please, what would you suggest?

回答1:

  • Why must the login appear on the task bar, since the main app will be there, and you don't want more than one task bar item for an individual program. Your best option may be to use a modal JDialog.
  • Another option is to use CardLayout to swap "views".
  • A third option is to use a JFrame if you must but attach a listener to it, a WindowListener I believe, to respond to its close event.
  • Regardless of which route you go, your login gui should be a JPanel so that you can place it anywhere you wish and then change your mind later.