SWT中嵌入Swing
转自:http://blog.sina.com.cn/s/blog_4d0d8bf6010008pz.html
1.为何要在SWT中嵌入Swing?
对于像窗口,菜单这样的图形界面元素来说,Swing能提供的,JFace也能提供。
但对图形操作,如Java2D,Java3D,Batik(www.apache.org)中的SVG处理,JAI中的位图操作等高级功能在SWT或JFace中没有提供。SWT不能使用诸如混叠消除、透明绘制、文本旋转等高级操作。
2.Eclipse 中,SWT EMBEDED常量使嵌入成为可能。
Composite awtContainer=new Composite(parent,SWT.EMBEDED);
java.awt.Frame myframe=SWT_AWT.new_Frame(awtContainer);
现在就可以随心所欲地向Frame对象中添加AWT或Swing对象了。
3.混合环境中的事务处理
用常规方法向AWT或Swing控件中添加监听器,对AWT事件作出响应。
但监听器访问SWT资源时必须小心,因为SWT和AWT在不同的线程中运行,这种访问应封装在一个Runnable对象之中,通过合适的Display方法执行,如syncExec(),asynExec()或timeExec().