Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 组与复合SWT?_Java_Swt - Fatal编程技术网

Java 组与复合SWT?

Java 组与复合SWT?,java,swt,Java,Swt,除了外表之外,小组控制和复合控制有什么区别? 我可以在组中放置一个容器吗?如果是,我必须使用什么布局?我尝试将一个容器放置在一个组中,但容器中的控件没有显示 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

除了外表之外,小组控制和复合控制有什么区别? 我可以在组中放置一个容器吗?如果是,我必须使用什么布局?我尝试将一个容器放置在一个组中,但容器中的控件没有显示

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);

扩展
组合
。这意味着它们都可以有子元素。两者都可以放在另一个里面。您的问题似乎是由于您的
没有
布局
造成的。仅将
布局设置为
组合
是不够的

下面是一个简单的例子:

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();
}

扩展
组合
。这意味着它们都可以有子元素。两者都可以放在另一个里面。您的问题似乎是由于您的
没有
布局
造成的。仅将
布局设置为
组合
是不够的

下面是一个简单的例子:

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();
}

对我的答案有什么反馈吗?@Baz:是的,Baz我正在研究:)会让你知道的好的,很高兴听到。希望你能成功。@Baz成功了。非常感谢你。你就像SWT lol的维基。你能给我推荐一些好的阅读材料吗。快乐阅读:)对我的答案有什么反馈吗?@Baz:是的,Baz我正在研究:)会让你知道的好的,很高兴听到。希望你能成功。@Baz成功了。非常感谢你。你就像SWT lol的维基。你能给我推荐一些好的阅读材料吗。快乐阅读:)