我有一个SWT文本,内容很大。由于它的内容,当我最大化窗口文本框将垂直增长并隐藏剩余的控件。
Text contentText=new Text( GroupName, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.WRAP );
contentText.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true, 1, 1 ) );
如何解决这个问题?
谢谢
答案 0 :(得分:0)
它完全取决于您如何将contentText放置在布局本身中。例如,如果你使用的是GridLayout
(只有一个)而且它是一个说法,1 X 2网格(或者n X 2,因为你只需要控制给定行中有多少列用于网格布局),并将contentText对象放在'right'网格中,并像使用gridData一样实例化contentText:
contentText.setlayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1,1));
让我们看看所有这些参数究竟发生了什么。从:swt api on GridData,您正在使用此构造函数:
GridData(int horizontalAlignment, int verticalAlignment, boolean grabExcessHorizontalSpace, boolean grabExcessVerticalSpace, int horizontalSpan, int verticalSpan)
Alrright,所以这告诉我的是我们希望我们的contentText使用SWT.FILL参数进行水平和veritcal对齐(使我们相信对象在水平和垂直方向上的间距相等)。你希望它尽可能多地抓住过多的水平和垂直空间,并且你希望它在水平和垂直方向上跨越一个网格元素。现在,虽然这本身不会覆盖并静态屏蔽屏幕上所有其余的控件,但是当你调整大小时,你仍然告诉contentText占用尽可能多的垂直空间(它是水平限制的)通过我想象的相同复合/网格布局中的其他对象,这就是为什么你没有看到任何覆盖的原因)。
现在,这可能是由于您如何构建整体复合/表单,以及哪些对象包含在哪些复合材料等等中。一个小因素会使事情失去很多。但是,学习如何使用各种布局数据构造函数来为您而不是对您工作,这在SWT中是一个巨大的好处。我会看一下here来更全面地理解布局,并且真正关注你正在制作的这些构造函数中的每个参数。很多时候,您不需要完整的6参数构造函数,还有其他选项。
祝你好运!