Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java swing "children" windows

Sorry for really simple question, but I wasnt able to find anything in the net, probably because I dont know the right terms to look for.

When you have a desktop application, there are many so called children windows: one for options, one for "about" and so on. How to make them in Java Swing (with NetBeans tools - optional)?

So far I just created another JFrame and on relevant event opened it the same way Main function launches, well, main JFrame. But there's something wrong with this method: when I close child window via x in the upper right corner, whole program terminates as if I was closing the main window. This is probably because NetBeans auto generated code for x and I can find and change it somewhere... but still I have a feeling that there must be a simpler proper way to add children JFrames (or JPanels or whatever is it for children windows) ;)

like image 643
Sejanus Avatar asked Jan 17 '10 07:01

Sejanus


3 Answers

... But there's something wrong with this method: when I close child window via x in the upper right corner, whole program terminates as if I was closing the main window. ...

Well, I would say you are on the right path. Just make sure that you do the following for your child frames :

frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

Then closing the child windows won't shut down your entire application.

HTH ! ;-)

like image 122
missingfaktor Avatar answered Nov 08 '22 13:11

missingfaktor


Do you mean a Dialog Window (see How to Make Dialogs) that you likely want to be modal to block user input to all other windows in the program (see An Overview of Dialogs)?

like image 22
Pascal Thivent Avatar answered Nov 08 '22 15:11

Pascal Thivent


Go to the frame-design mode -> select your frame -> in the properties, the fist option. Select Dispose on close.

If you don't see the props: Ctrl + Shift + 7 or Window (in the frame menu) -> Properties

like image 32
Martijn Courteaux Avatar answered Nov 08 '22 13:11

Martijn Courteaux