Group Control和Composite除了它们的外观有什么区别? 我可以在集团内放置一个容器吗?如果是,我将使用什么布局?我尝试将一个容器放在一个组中,但Container内的控件没有显示出来。
Group grp= new Group(container, SWT.NONE);
grp.setText("XYZ");
grp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
Conatiner cnt = new Container(grp, SWT.NONE);
cnt.setLayout(new GridLayout(4,true));
cnt.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
Text text = new Text(cnt,SWT.LEFT);
答案 0 :(得分:4)
Group
延伸Composite
。这意味着它们都可以有子元素。两者都可以放在另一个里面。您的问题似乎是由于Group
没有Layout
这一事实造成的。仅将Layout
设置为Composite
。
这是一个最小的例子:
public static void main(String[] args)
{
final Display display = new Display();
final Shell shell = new Shell(display);
shell.setText("StackOverflow");
shell.setLayout(new GridLayout(1, false));
Group group = new Group(shell, SWT.NONE);
group.setText("Group");
group.setLayout(new GridLayout(1, false));
Composite composite = new Composite(group, SWT.NONE);
composite.setLayout(new GridLayout(2, true));
new Label(composite, SWT.NONE).setText("left");
new Label(composite, SWT.NONE).setText("right");
shell.pack();
shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
{
display.sleep();
}
}
display.dispose();
}