You know when you have a JFrame, with a JDesktopPane in, then you can have several JInternalFrames open? You can close one JInternalFrame by clicking its [X] close button, but I was thinking it is more elegant to have a "closeItem" in a menu. I have worked out how to get a "closeItem" into a JMenuBar, and can get it to appear on screen, but what is the best way to close one JInternalFrame? I have tried the getSelectedFocus() method [or something like that], which gets the JRootPane of the JFrame, so that isn't helpful. In Horstmann's book it says that you have to get an array JInternalPane, then iterate through it to find the object with focus, then . . . thatInternalPane.setClosed(true); I seems a complicated way to do it; does anybody know anything easier or more elegant? In C# we were told to put about two lines in the listener, and it took me about 30 seconds to realise you could write "this.ActiveMdiChild.close();". Is it really more complicated in Java?
Joined: Sep 16, 2005
It's just as simple. Take a look at JDesktopPane's methods and you will see it.