My Codename One应用程序的一个Form包含3个SpanLabel,其中包含文本和LayeredLayout中的一个Container,带有图像和叠加层。
this.add(BorderLayout.NORTH, spanLab1);
this.add(BorderLayout.CENTER, imageCont);
this.add(BorderLayout.SOUTH, BoxLayout.encloseY(spanLab2, spanLabl3));
这导致以下结果:
这不太令人满意,因为图像(显示在中央并且应该是CN1图标)没有缩放但是因为无法向下滚动而被剪切。
我试图强制表单可滚动(this.setScrollableY(true)
)但没有成功。
我是否在某个地方犯了错误,例如我的所有内容都应该放在? BorderLayout.CENTER
中,因为根据documentation,北部位置专用于标题,而南部位置是一个可选的菜单栏(我尝试了这个没有成功)
或者我应该显示一个Dialog(提供Y-Scroll开箱即用)?什么是显示所有(长)内容没有图片剪切或文本重叠的正确方法?
2016年12月22日编辑
正如@Tizbn所写,Form的ContentPane必须在Vertical BoxLayout中。因此必须编写对父构造函数的调用:
super(new BoxLayout(BoxLayout.Y_AXIS));
非常感谢您的帮助!
答案 0 :(得分:2)
在BorderLayout中禁用垂直滚动。因为可以使用具有Y轴的BoxLayout并在Boxlayout中生成setScrollableY(true)。希望它会有所帮助。