2

私はswingでアプリケーションを作成しています。私は20以上のjpanelを持っています。表示したいjpanelを表示したい:

例:

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();

メインjFrameで上記のパネルのオブジェクトを作成しています。正常に動作しています

理由

public mainFrame(){
    requestResponseReportPanel.setVisible(false);
    keyMessageSetupPanel.setVisible(false);
    sMSCSetupPanel.setVisible(false);
    welcomePanel.setVisible(true);
    keyMessageDetailsPanel.setVisible(false);
    blockedSmscDetailsPanel.setVisible(false);
    runTimePanel.setVisible(false);
}

初めてアプリケーションを起動すると、表示しているウェルカム パネルが 1 つだけ表示され、welcomePanel.setVisible(true); クリックするとメニューが表示keyMessageSetupPanel されます。このパネルを表示するコードは次のとおりです。

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();
    }
}   

私の質問は、このように使用した場合、アプリケーションが機能していることです。ただし、実行時にすべてのパネルをロードし、ロードに時間がかかります。これが気に入らなかった場合は表示され、 (または)welcomePanelをクリックして別のパネルに移動した場合:menubutton

  1. ウェルカム パネルの表示
  2. 行きましたkeyMessageSetupPanel(これはうまくいっています)
  3. 今私は行きましたbindingDetailsPanel(それは動作します)
  4. しかし、問題は私が再びしたいということですkeyMessageSetupPanel(それは隠しませんbindingDetailsPanel)。

編集済みこれは表示するコードです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);

私を助けてください。 注意私の質問を理解していないコメントを理解していない場合は、説明しようとします。

ありがとう

4

1 に答える 1