Codenameone 如何获得代码名单表单功能垂直滚动?

Codenameone 如何获得代码名单表单功能垂直滚动?,codenameone,Codenameone,My Codename One应用程序的特点是一个表单,其中有3个包含文本的span标签,一个包含图像和覆盖层的分层布局容器 this.add(BorderLayout.NORTH, spanLab1); this.add(BorderLayout.CENTER, imageCont); this.add(BorderLayout.SOUTH, BoxLayout.encloseY(spanLab2, spanLabl3)); 这将产生以下结果: 这是不令人满意的,因

My Codename One应用程序的特点是一个表单,其中有3个包含文本的span标签,一个包含图像和覆盖层的分层布局容器

    this.add(BorderLayout.NORTH, spanLab1);
    this.add(BorderLayout.CENTER, imageCont);
    this.add(BorderLayout.SOUTH, BoxLayout.encloseY(spanLab2, spanLabl3));
这将产生以下结果:

这是不令人满意的,因为图像(显示在中央,应该是CN1图标)没有缩放,而是被剪切,因为无法向下滚动

我试图强制表单可滚动(
this.setScrollableY(true)
),但没有成功

我是否在某个地方犯了错误,例如,我的所有内容是否都应该放在
BorderLayout.CENTER
中,因为根据示例,北位置专用于标题,南位置专用于可选菜单栏(我尝试了但没有成功)

或者我应该显示一个对话框(它提供了Y形滚动框)?在没有图片剪切或文本重叠的情况下,显示所有(长)内容的正确方式是什么

编辑2016年12月22日

正如@Tizbn所写,表单的ContentPane必须是垂直的BoxLayout。因此,必须编写对父构造函数的调用:

super(新的BoxLayout(BoxLayout.Y_轴))


非常感谢您的帮助

在BorderLayout中禁用垂直滚动。对于该BoxLayout,可以使用Y轴,并在BoxLayout中设置Crollabley(true)。希望能有所帮助。

我想补充一点,边界布局使北/南/东/西成为相对轴上的首选尺寸。它给了中心一个提醒。通常情况下,您不希望在边框布局的两侧出现增长的内容(例如,大块文本)。这是一条完美之路,谢谢@Tizbn@由于
this.add(Component)
this.getContentPane().add()
我错误地理解了[doc](),所以我的倒数第二段完全错了!