I am making an application in swing. I have more than 20 jpanel. I want to display that jpanel to which I want display :
example:
WelcomePanel welcomePanel = new WelcomePanel();
BindingDetailsPanel bindingDetailsPanel = new BindingDetailsPanel();
FooterMainPanel footerMainPanel = new FooterMainPanel();
KeyMessageSetupPanel keyMessageSetupPanel = new KeyMessageSetupPanel();
SMSCSetupPanel sMSCSetupPanel = new SMSCSetupPanel();
LiveProcessorDetailsPanel runTimePanel = new LiveProcessorDetailsPanel();
RuntTimeInformationPanel welcomePanel=new RuntTimeInformationPanel();
BlockedSmscDetailsPanel blockedSmscDetailsPanel = new BlockedSmscDetailsPanel();
I am making object of above listed panel in my main jFrame. It is working fine
because:
public mainFrame(){
    requestResponseReportPanel.setVisible(false);
    keyMessageSetupPanel.setVisible(false);
    sMSCSetupPanel.setVisible(false);
    welcomePanel.setVisible(true);
    keyMessageDetailsPanel.setVisible(false);
    blockedSmscDetailsPanel.setVisible(false);
    runTimePanel.setVisible(false);
}
first time when my application starts it will display only one panel welcome panel which I am making visible welcomePanel.setVisible(true);
and I have menu if I click it should be display keyMessageSetupPanel
following is code to display this panel:
private void keyMessageSetupMenuItemActionPerformed(java.awt.event.ActionEvent evt) {                                                        
    try {
        mainFrameContentPanel.add(keyMessageSetupPanel, BorderLayout.CENTER);
        keyMessageSetupPanel.setVisible(true);
        sMSCSetupPanel.setVisible(false);
        welcomePanel.setVisible(false);
        homeButton.setVisible(true);
        bindingDetailsPanel.setVisible(false);
        requestResponseReportPanel.setVisible(false);
        keyMessageDetailsPanel.setVisible(false);
        blockedSmscDetailsPanel.setVisible(false);
    } catch (Exception e) {
      printStackTrace();
    }
}   
My question is if I used like this my application is working. But it loads all panel at  runtime and takes long time to load. If I did not like this it displays welcomePanel and if I went to another panel by clicking ( menu or button ) :
Example:
- Welcome Panel displays
 - I went 
keyMessageSetupPanel(This is working fine) - Now I went to 
bindingDetailsPanel(it works) - But the problem is I want again to 
keyMessageSetupPanel(it does not hides thebindingDetailsPanel). 
Edited This is code which displays bindingDetailsPanel
mainFrameContentPanel.add(bindingDetailsPanel, BorderLayout.CENTER);
bindingDetailsPanel.setVisible(true);
keyMessageSetupPanel.setVisible(false);
sMSCSetupPanel.setVisible(false);
welcomePanel.setVisible(false);
homeButton.setVisible(true);
requestResponseReportPanel.setVisible(false);
keyMessageDetailsPanel.setVisible(false);
blockedSmscDetailsPanel.setVisible(false);
Please help me. Note If you do not understand comment where you did not understand my question I will try to explain.
Thanks