2015-04-06 29 views
2

我創建了一個JFace的無模式對話框,試圖把殼的風格與下列選項JFace的對話框始終在最前面和無模式

setShellStyle(SWT.CLOSE | SWT.TITLE |SWT.MODELESS |SWT.ON_TOP); 

我想這個對話框始終在最前面,但該對話框被最小化,當我儘量減少日食工作臺。

我是否缺少一些與shell風格的位或這是預期的行爲?

即使我們儘量減少eclipse應用程序,我怎樣才能始終在頂部的對話框?

public class Capture extends Dialog { 

    public Capture(Shell parentShell) { 
     super(parentShell); 
     setShellStyle(SWT.CLOSE | SWT.TITLE |SWT.MODELESS |SWT.ON_TOP); 
    } 

} 
+0

'SWT.OP_TOP'是正確的標誌,它告訴shell始終保持最佳狀態,即使應用程序處於非活動狀態,但它是_hint_,並且可能會被某些Windows系統忽略。我剛剛嘗試[使用修改後的SWT代碼片段](http://git.eclipse.org/c/platform/eclipse.platform.swt.git/plain/examples/org.eclipse.swt.snippets/src/org/eclipse /swt/snippets/Snippet50.java),它在Win7上按預期工作。你使用哪個窗口系統? – 2015-04-06 11:52:43

+0

只贏7次 - 但我使用的是Jface對話框,而您提到的片段使用SWT對話框。我已經添加了上面的代碼。 – Amrit 2015-04-06 12:41:54

回答

1

使用null父殼牌,這樣的對話框是不是你最小化窗口的子窗口。

+0

謝謝格雷格!你可以請看看這個http://stackoverflow.com/questions/29432507/reuse-project-explorer-view-for-your-custom-plugin-project – Amrit 2015-04-06 17:08:51

1

我沒有足夠的知名度評論。所以張貼這個答案。 這是什麼parentShell?這決定了對話的生活和行爲。創建一個新的shell或將null作爲shell。這應該消除與工作臺的關係。 另一個問題:爲什麼試圖這樣做?