首先创建一个Shell shell = new Shell(display, SWT.DIALOG_TRIM);
对它进行了shell.setLayout(new FormLayout())布局
但是这样产生的窗体是固定大小的
我在哪设置具体的大小呢?并且我发现如果使用shell.setBounds的话,shell上创建的控件将不被显示

解决方案 »

  1.   

    去覆盖API里面的getBounds方法。
    其实LZ你可以多查看下例子代码,如果你比较中情于GUI,那么你去下下那些开源的L&F的源代码吧。
      

  2.   

    shell.setSize();给个完整例子public class LabelFont { public static void main(String[] args) {
    Display display = new Display();
    Shell shell = new Shell(display, SWT.SHELL_TRIM);
    RowLayout layout = new RowLayout(SWT.VERTICAL);
    shell.setLayout(layout);
    shell.setText("Labels");
    Label label1 = new Label(shell, SWT.CENTER);
    label1.setText("Label 示例");

    Label label2 = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL);
    label2.setText("-");

    Label label3 = new Label(shell, SWT.CENTER);
    label3.setText("姓名");
    label3.setFont(new Font(display,"宋体",12,SWT.NORMAL));

    Label label4 = new Label(shell, SWT.CENTER);
    label4.setText("年龄");
    label4.setFont(new Font(display,"华文中宋",14,SWT.BOLD));

    Label label5 = new Label(shell, SWT.CENTER);
    label5.setText("身高");
    label5.setFont(new Font(display,"楷体",16,SWT.ITALIC));

    shell.setSize(300, 200);  //<--就是这句
    shell.open(); while (!shell.isDisposed()) {
    if (!display.readAndDispatch()) {
    display.sleep();
    }
    }
    display.dispose();
    }
    }