It's a common practice to have a Controller object that orchestrates the goings on between windows and the business/data side of an application. One common
pattern is called "Model View Controller". Googling for that will find some technical and rather advanced discussions, so let's try to approach it more gently.
At a high level it might look like:
The Model here is some Plain Old
Java Object that maybe checks the userid & password against a database. The Controller has the logic to decide what to do when authenticate succeeds or fails.
Showing a window calling the Controller skips over a lot of details - buttons and listeners and such. It sounds like you're getting comfortable with those things. Just make a button event handler that calls the Controller.
Other menu options should do much the same thing - just tell the Controller that something happened. I like a description of the controller "interpreting user gestures", messages like "The user hit this button" or at a slightly higher level "The user wants to close the application now"
Does that kind of thing make sense? Scroll down to the OO, UML, etc. forum for more detailed discussions of designs like this.