SWT中嵌入awt或者swing(主要是一些二维图形或者图的绘制swt不行)

来源:互联网 发布:excel2016宏编程教程 编辑:程序博客网 时间:2024/04/28 05:40

可以的,   SWT中可以嵌入Swing组件.

view plaincopy to clipboardprint?
  1. Composite   comp   =   new   (parent,   SWT.EMBEDDED);   
  2. final   frame   =   SWT_AWT.new_Frame(comp);   
  3. SwingUtilites.invokeLater(new   Runnable()   {   
  4.       public   void   run()   {   
  5.             createYourSwingComponents(frame);   
  6.       }   
  7. });   
  8. rivate   void   createYourSwingComponents(Frame   frame)   {   
  9.       JPanel   panel   =   new   JPanel();   
  10.          
  11.       frame.add(panel);   
  12.       frame.pack();   
  13. }  


注意一定要用SWT.EMBEDDED,   表示将会在里面插入Swing组件.
为什么要写SwingUtilites.invokeLater我也不太清楚,   还请知道的达人指教.
另外如果一个面板上(ViewPart或者EditorPart或者任何面板)同时有Swing和SWT组件,   那么按Tab时光标无法顺利从SWT组件跳到Swing组件.   如果光标已经在Swing组件,   那么只会在Swing面板中循环.   IBM说这个问题已经解决了,   可以在IBM的网站上查到这个BUG,   并且2003年就Close了,   不过现在我还是碰到这个问题.   并且有时候swing组件连光标都没办法拿到.   有可能是我的水平还不到位 

 

 

SWT中嵌入Swing

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(). 

 

 

其实关键就只有两行:

关键就只有两行代码:
#         Composite composite = new Composite(shell, SWT.EMBEDDED);  
#   
#          java.awt.Frame frame = SWT_AWT.new_Frame(composite); 、

 

 

参考http://www.javaeye.com/wiki/topic/899107

http://www.javaeye.com/topic/126185

http://www.java2s.com/CN/Tutorial/Java/0280__SWT/EmbededSwingAWTcomponentstoSWT.htm

http://piscesky.javaeye.com/blog/281854

http://java.csecs.com/posts/list/11593.html

http://www.google.com.hk/search?hl=zh-CN&newwindow=1&safe=strict&biw=1280&bih=534&q=swt+%E5%B5%8C%E5%85%A5+swing&aq=f&aqi=&aql=&oq=

 

 

原创粉丝点击