2012-11-27 91 views
0

我對SWT編程頗爲陌生。我有一個GridLayout。當我第一次啓動GUI時,它只在左上角顯示一個Button。如果我調整它的大小(使窗口變大或變小),我就得到了我想要的GUI。我修改了構造函數和open()方法,但是我所做的每個更改都沒有改變。在swt中調整大小問題

 // constructor 
public MyGuiApp(){ 
    super(); 
    shell = new Shell(); 
    shell.setSize(250, 300); 

    // the open method 
public void open() { 
    Display display = Display.getDefault(); 
    createContents(); 
    shell.open(); 
    shell.setLayout(new GridLayout(2,true)); 


    // instantiation 
     public static void main(String args[]) { 
    try { 
     MyGuiApp window = new MyGuiApp(); 
     window.open(); 
+1

您能否發佈完整的代碼? – Baz

+1

嘗試在打開外殼之前設置佈局。 –

+0

好的建議 - 我需要做的是從構造函數中移動一些初始化,並打開createContents()方法。 – brifer

回答

0

的代碼應該是:

Display display = Display.getDefault(); 
Shell shell = new Shell(display); 
shell.setLayout(new GridLayout(2, true)); 
createContents(shell); 
shell.pack(); 
shell.open(); 

你根據其內容缺少shell.pack();這將大小的外殼。


BTW:Here是一個非常漂亮的模板,可以用來作爲起點,幾乎所有的SWT應用程序。

+0

感謝baz,很好的建議 - 我需要做的是從構造函數中移動一些初始化,並打開createContents()方法。 – brifer