在java SWT Composite中根据设置布局不进行布局

时间:2017-02-06 08:36:38

标签: java swt

我希望在运行以下代码时在主要合成中显示两个复合。

但除非为它们设置边界,否则它不会显示子复合体。 但由于我已经应用了布局,因此我期待自动设置setBound。 有人可以告诉我这里有什么问题。

public static void main(String[] args) {
    Display display = new Display();
    Shell shell = new Shell(display);
    Composite composite = new Composite(shell, SWT.BORDER);
    composite.setBounds(0,0,500,500);
    RowLayout rowLayout = new RowLayout();
    rowLayout.type =SWT.VERTICAL;
    rowLayout.fill = true;
    composite.setLayout(rowLayout);

    //
    //
    Composite comB1 = new Composite(composite, SWT.BORDER);

    RowLayout comB1Layout = new RowLayout();
    comB1Layout.type =SWT.HORIZONTAL;
    comB1.setVisible(true);
    //
    //
    Composite comB2 = new Composite(composite, SWT.BORDER);

    RowLayout comB2Layout = new RowLayout();
    comB2Layout.type =SWT.HORIZONTAL;
    comB1.setVisible(true);
    shell.open();


    while (!shell.isDisposed()) {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();

}

1 个答案:

答案 0 :(得分:1)

您需要在Car.orm.yml上设置一个布局,告诉它如何处理这些孩子。

但是,这会覆盖CarType上的Shell。很难将布局与setBounds混合在一起。而是在Composite上致电setBounds

类似于:

setSize