I'm currently writing a Desktop-Application with Swing that consists of a MainFrame in which several InternalFrames will be running. I want to write the InternalFrames in separate classes for each to avoid having one huge MainFrame-class.
Now my problem is that I want to add an ActionListener to a MenuItem in a PopupMenu in the MenuInternalFrame that opens another InternalFrame in the MainFrame. The MenuInternalFrame appears, however when I click on the MenuItem nothing happens. When I put the code outside of the ActionListener the InternalFrame appears.
The problem must be something with the ActionListener. Could it be my workaround with the local class and a final instance to access the InternalFrame from within the mouseClicked-Method?
Here are the relevant parts of the code from the MainFrame-Constructor:
class InternalFrames {
TestInternalFrame test = new TestInternalFrame();
JDesktopPane desktopPane = new JDesktopPane();
}
final InternalFrames internalFrames = new InternalFrames();
internalFrames.desktopPane.setBackground(Color.WHITE);
Menu menu = new Menu();
menu.getMntmTestMenuItem().addMouseListener( new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
internalFrames.desktopPane.add(internalFrames.test);
internalFrames.test.setVisible(true);
}
});
internalFrames.desktopPane.add(menu);
menu.setVisible(true);
Any ideas what could be the problem? Thanks in advance.