在SWT里显示AWT对象

简介: 今天遇到一个问题,就是要在一个Eclipse插件里显示JFreeChart的图形,因为后者是基于Java2D的,要把图形显示在SWT应用程序里需要利用SWT-AWT桥接器来实现,虽说桥接的方式多半会伴随着性能下降,但总归是一个解决方法。

今天遇到一个问题,就是要在一个Eclipse插件里显示JFreeChart的图形,因为后者是基于Java2D的,要把图形显示在SWT应用程序里需要利用SWT-AWT桥接器来实现,虽说桥接的方式多半会伴随着性能下降,但总归是一个解决方法。

代码并不复杂,以下是一个片断:

ExpandedBlockStart.gif public   void  createPartControl(Composite parent)  {
InBlock.gif    parent.setLayout(
new FillLayout(SWT.VERTICAL));
InBlock.gif    Composite drawarea 
= new Composite(parent, SWT.EMBEDDED);
InBlock.gif    drawarea.setLayout(
new FillLayout());
InBlock.gif    Frame canvasFrame 
= SWT_AWT.new_Frame(drawarea);
ExpandedSubBlockStart.gif    canvas 
= new java.awt.Canvas() {
ExpandedSubBlockStart.gif        
public void paint(Graphics g) {
InBlock.gif            super.paint(g);
InBlock.gif            
if (chart != null)
InBlock.gif                chart.draw((Graphics2D) g, getBounds());
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif    }
;
InBlock.gif    canvasFrame.add(canvas);
ExpandedBlockEnd.gif}

None.gif

关键之处在于SWT_AWT.new_Frame()方法,得到的是一个java.awt.Frame对象,要显示的AWT内容都放在它上面就好。

BTW, SWT下免费的图表工具好象很少,只能暂时先这样使用JFreeChart了。

Update: 如果要在SWT里显示带有动画效果的AWT图形,最好在Frame上先放一个JPanel这样的带有双缓冲的控件,否则图象在运动时会产生明显的闪烁。

本文转自博客园八进制的博客,原文链接:在SWT里显示AWT对象,如需转载请自行联系原博主。

相关文章
|
2月前
swing/swt 支持多屏幕显示
swing/swt 支持多屏幕显示
|
8月前
|
API 数据安全/隐私保护 Android开发
【SWT】常用代码及接口(一)
【SWT】常用代码及接口(一)
122 0
|
Oracle 安全 Java
Java GUI框架选择什么?Swing,SWT,AWT,SwingX,JGoodies,JavaFX,Apache Pivot?
Java GUI框架选择什么?Swing,SWT,AWT,SwingX,JGoodies,JavaFX,Apache Pivot?
1017 0
Java做一个可以在窗口里面拖动的窗口组件
Java做一个可以在窗口里面拖动的窗口组件
205 0
Java_Swing中让窗口居中显示的方法(三种方法)
Java_Swing中让窗口居中显示的方法(三种方法)
543 0
|
Java
swt java 内嵌ActiveX控件
这里用的是SWT/JFace开发application中SWT自带的org.eclipse.swt.ole.win32 包可以支持内嵌OLE和ActiveX。
186 0
|
分布式计算 Java 关系型数据库
Java--GUI之窗体的创建和组件的添加
这里是 Java--GUI 系列文章,主要介绍Java中的图形化界面编程及其实现。 Java的图形化界面编程除了在自学中可以直观地感受到效果,还会在考试的题目中察觉到重要性 关于作者: 小白(Libra),计算机兴趣爱好者,Java,C,Hadoop,MySQL Email : hewei20031009@163.com GitHub : https://github.com/Regel-zack 转载请注明出处
568 0
Java--GUI之窗体的创建和组件的添加
|
Java
Java中GUI的默认窗体布局 和 常见的窗体布局方案
Java中GUI的默认窗体布局  常见的窗体布局方案 我的GitHub地址:https://github.com/heizemingjun 我的博客园地址:http://www.cnblogs.
1262 0