2012-11-27 22 views
2

我使用SWT庫時,Java項目出現問題。這是我第一次嘗試用SWT,所以不要把石頭扔給我。配置外殼而不處理顯示器(父)

環境:月食 - 朱諾

類和函數:

1º客戶端 - >哪裏是 「主」。創建一個「GUI_Creator」類(我的)的對象。

2ºGUI_Creator - >有2個功能,以 「德興」 我的形式。

2.1 - > MakeLogIn - > void方法,至極增加我需要管理程序中的控制我給他作爲參數。我用它來設計我向用戶展示的第一種形式。

這個功能也鏈接這個殼的按鈕的「click」事件,與GUI_Creator類的第二個功能,即創建一個新的外殼。然後,這個外殼將被打開,並且第一個將被關閉。

2.2 - > MakeClient - >該函數返回一個shell var。對我來說,這將返回我的方案的第二外殼,甚至與德興等

問題:

我使用,在「主」這個代碼末尾:

while (!Conexion.isDisposed()) 
{ 
    if (!ourDisplay.readAndDispatch()) 
     ourDisplay.sleep(); 
} 

ourDisplay.dispose(); 

如果我沒有錯,這段代碼是這樣做的,當我嘗試關閉我的第一個shell,然後離開只打開第二個shell,我的程序完全關閉,因爲我正在處理父顯示。

但是,我不能刪除此代碼,因爲如果我這樣做,當我運行我的程序,它並沒有「等待」的動作,只是執行所有「主」的代碼,然後關閉GUI和該方案最終確定。

所以,我真的不知道我必須做的,爲了解決這個情況的。

感謝, 英羣

+1

你能寫包含的,完成一個簡短的自我,並正確的例子嗎? http://sscce.org/你給的例子不是自包含的,也不是完整的,所以很難弄清楚什麼是錯的。 – durron597

回答

1

我不知道如果我得到你的問題所在,但你可以嘗試:

while (!(shell1.isDisposed() && shell2.isDisposed())) { 
... 
} 
+0

解決!謝謝!!我有一個小問題,因爲我沒有第二個Shell的Shell在「主」,但這並不重要。 –