[英]Problems with SWT / AWT bridging?
下午,
我正在研究Eclipse RCP插件。 我想在其中嵌入一個Swing組件。 目前我正在使用這樣的SWT < - > AWT橋:
Applet applet = new myApplet();
Composite swtAwtComponent = new Composite(parent, SWT.EMBEDDED);
java.awt.Frame frame = SWT_AWT.new_Frame( swtAwtComponent );
applet.init();
frame.add(applet);
這種方法是否存在重大問題,或者我應該考慮采用哪種更好的方法? 這將如何影響應用程序中的線程/並發性。
謝謝
SWT_AWT網橋肯定存在一些問題:
最重要的是線程問題。 這里的問題是當你同時使用SWT和AWT時,你實際上使用的是兩個GUI線程。 它們之間的正確同步是絕對必要的,否則您通常會遇到死鎖。 在大多數情況下,您可以使用EventQueue#invokeLater或Display#asyncExec來避免它。
第二個主要問題是模態問題。 SWT有自己的模態堆棧,AWT有自己的模態堆棧。 您可能還需要解決這些問題。 已知有解決方案。
您可能會在這里和那里看到外觀和感覺不一致,可能需要根據具體情況進行修復。
在使用SWT_AWT做大事之前,請務必閱讀並理解常見問題解答 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.