CN1 中的预览和 运行 应用之间的布局组成不同

Layout composition varying between preview and running app in CN1

我配置了一个布局,结果如下: Form 内容窗格的 LayoutTableLayout,它由一个单元格组成。内容窗格只有一个容器作为子容器,我为其设置了 layoutConstraint 并修改了以下值:width = 100%, height = 100%, Align = CENTER, Vertical Align = CENTER.

换句话说,我将表单的组件居中。

在预览中它看起来像预期的那样,但当应用程序在模拟器中运行时却不是! 注:

  1. 我没有修改代码中的任何样式或布局属性!因此我不知道为什么它不是模拟器中的预期。

  2. 的方法对我不起作用!

  3. 这是我关于该表格的代码:

    @Override
    protected void postIntroLangSelect(Form f) {
    
      f.getTitleArea().setHidden(true);
      f.revalidate();
    
      // button configuration
      Button btnDE = findButtonDE(f);
      Button btnTR = findButtonTR(f);
    
      btnDE.addActionListener((e) -> {
         settings.setLocale(Lang.GERMAN);
         showNextForm();
      });      
      btnTR.addActionListener((e) -> {
        settings.setLocale(Lang.TURKISH);
        showNextForm();
      });
    }
    

将表单的布局设置为 BorderLayout 并选中 Absolute Center,然后在表单上添加一个容器,并将其布局约束设置为 Center。给这个容器一个 BoxLayout Y 布局并在其中添加所有其他组件。

如果这种方法对您不起作用,那么您将不得不 hand-code 您的表单并将其布局设置为 new BorderLayout(BorderLayout.CENTER_BEHAVIOR_CENTER)