[英]SWT Create Scroll Composite in Group
我想创建一个包含2个组的组合。 2组与复合材料的宽度相同,并且可以调整大小。
Group1包含一个可滚动的Composite。 此可滚动复合图像的固定高度为400,包含20个文本字段==> show V_SCROLL
Group2包含一个文本字段,高度将是动态的,最小大小为100,按高度合成调整大小-400(可滚动合成的高度)
我尝试构建此布局,但Group1总是完全填充了复合材料,而看不到Group2
谢谢
您可以使用GridData#heightHint
和GridData#minimumHeight
设置高度。 但是请记住,强制执行特定大小可能无法在所有屏幕分辨率上正常工作,因为所需的大小可能会超出可用的屏幕大小。
但是,这是一个简单的示例,应该可以帮助您:
public static void main(String[] args)
{
Display display = new Display();
Shell shell = new Shell();
shell.setText("StackOverflow");
shell.setLayout(new GridLayout(1, false));
Group first = new Group(shell, SWT.NONE);
first.setText("Group 1");
first.setLayout(new GridLayout(1, false));
GridData firstData = new GridData(SWT.FILL, SWT.FILL, true, false);
firstData.heightHint = 400;
first.setLayoutData(firstData);
ScrolledComposite firstScroll = new ScrolledComposite(first, SWT.V_SCROLL);
firstScroll.setLayout(new GridLayout(1, false));
firstScroll.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
Composite firstContent = new Composite(firstScroll, SWT.NONE);
firstContent.setLayout(new GridLayout(1, false));
firstContent.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
for (int i = 0; i < 20; i++)
{
Text text = new Text(firstContent, SWT.BORDER);
text.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));
}
firstScroll.setContent(firstContent);
firstScroll.setExpandHorizontal(true);
firstScroll.setExpandVertical(true);
firstScroll.setMinSize(firstContent.computeSize(SWT.DEFAULT, SWT.DEFAULT));
Group second = new Group(shell, SWT.NONE);
second.setText("Group 2");
second.setLayout(new GridLayout(1, false));
GridData secondData = new GridData(SWT.FILL, SWT.FILL, true, true);
secondData.minimumHeight = 100;
second.setLayoutData(secondData);
Text text = new Text(second, SWT.BORDER | SWT.MULTI);
text.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
shell.pack();
shell.setSize(400, shell.getSize().y);
shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
{
display.sleep();
}
}
display.dispose();
}
看起来像这样:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.