首页 > 解决方案 > 使用 StackLayout 我只想在选择标志时显示一个表

问题描述

我有两张桌子,在标志上我需要一次显示一张桌子。My createControl() method is called at the time of loading and flag value is true so one table is loaded first time, when choose of false flag my second table its giving null pointer. 因为没有正确调用第二个时间表。我在 google 中看到 stacklayout 将适用于这种类型的加载,它将在加载时加载两个表。但我无法使用 stacklayout 调用它们。

 public void createControl(final Composite parent) {
     final Font font = parent.getFont();
     final Composite composite = new Composite(parent, SWT.NONE);
     composite.setLayout(new GridLayout());
     composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
     composite.setFont(font);

     composite.setLayout(new GridLayout());
     composite.setLayoutData(new GridData(SWT.FILL, SWT.DEFAULT, true, false));
     final Composite controlsComposite = WidgetFactory.getClassicToolkit().createComposite(composite);
     final GridLayout gridLayout = new GridLayout(NUM_COLUMN, false);
     controlsComposite.setLayout(gridLayout);
     final GridData gridData = new GridData(SWT.FILL, SWT.DEFAULT, true, true);
     gridData.horizontalAlignment = GridData.FILL;
     gridData.grabExcessHorizontalSpace = true;
     controlsComposite.setLayoutData(gridData);

     if (getWizard() instanceof TestWizard) {
         final IWizardPage[] wizardPages = getWizard().getPages();
         for (final IWizardPage page : wizardPages) {
             if (page instanceof PSRDesignerImportWizardPage) {
                 TestWizard importwizardPage = (TestWizard) page;
                 if (importwizardPage.isInitiative()) {
                     setTitle("Table1");
                     setMessage("Hello");
                     gridLayout.numColumns = 1;
                     controlsComposite.setLayout(gridLayout);
                     createTable1Control(controlsComposite);
                     gnerImport = true;
                 } else {
                     setTitle("Table2");
                     setMessage("Bye");
                     controlsComposite.setLayout(gridLayout);
                     createTable2Control(controlsComposite);
                     rDomainImport = true;
                 }
             }
         }

     } else {
         creatFileSelectionGroup(controlsComposite);
     }
     createImportOptions(controlsComposite);
     setControl(composite);
 }

代码2:

 @Override
 public IWizardPage getNextPage() {
     List<tualInitiative> ualInitiativeList = getConceptualInitiativeList(psrUserInfo);
     if (ualInitiativeList.isEmpty()) {
         return null;
     }
     IWizardPage nextPage = super.getNextPage();
     if (nextPage instanceof FormatImportWizardPage) {
         FormatImportWizardPage xfPage = (FormatImportWizardPage) nextPage;
         if (initiative) {
             xfPage.settable1Data(ualInitiativeList);  
         } else {
             xfPage.settable2Data(ualInitiativeList);  
         }
     }
     return nextPage;
 }

标签: javaeclipse-pluginswtjface

解决方案


推荐阅读