在SWT里显示AWT对象

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

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

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

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

    }
;
    canvasFrame.add(canvas);
}

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

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

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

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

相关文章
|
Kubernetes 应用服务中间件 nginx
深入了解 `kubectl`:Kubernetes 命令行工具
深入了解 `kubectl`:Kubernetes 命令行工具
351 1
|
设计模式 Java 关系型数据库
面试官:说说你的项目亮点?
面试官:说说你的项目亮点?
350 0
面试官:说说你的项目亮点?
|
JavaScript 前端开发 开发者
事件处理:深入理解Vue的事件机制
【4月更文挑战第23天】Vue.js的事件处理机制是其核心特性之一,允许开发者响应用户操作。通过`v-on`(或简写`@`)指令绑定DOM事件到方法,当事件触发时执行相应代码。事件修饰符如`.stop`、`.prevent`等简化了常见逻辑。此外,Vue支持自定义事件,便于组件间通信,如子组件通过`$emit`触发事件,父组件使用`v-on`监听并处理。理解这些概念能帮助开发者更有效地控制Vue应用的事件流程。
313 0
解决vue2升级vue3后,输入框无法输入的问题
解决vue2升级vue3后,输入框无法输入的问题
736 0
|
Kubernetes Java Docker
K8s 中 Pod OOMKilled 原因
K8s 中 Pod OOMKilled 原因
924 0
|
JavaScript 前端开发
CodeMirror实现代码对比功能
CodeMirror实现代码对比功能
CodeMirror实现代码对比功能
|
存储 云安全 运维
如何安全存放数据到对象存储 OSS 及数据湖的13问
数据作为企业的血液和命脉,需要妥善的保存。对象存储作为云计算的数据存储底座,并且还在支持数据湖存储能力,它是企业存储数据的理想之地。但是如何安全的存放数据到存储,特别是公共云对象存储,相信不少的的数据负责人都会有很多疑问,本文从账户认证能力、网络安全配置、访问授权方法、数据加密功能、访问日志审计、数据安全机制等纬度总结了13个安全问题,帮助回答企业上云存放数据的安全顾虑。一、企业上云存放数据的安全
1091 1
如何安全存放数据到对象存储 OSS 及数据湖的13问
|
定位技术
在地图上基于OpenLayers实现点/线/面静态的绘制显示
在地图上基于OpenLayers实现点/线/面静态的绘制显示
2056 0
在地图上基于OpenLayers实现点/线/面静态的绘制显示
|
Oracle 关系型数据库 数据库
oracle学习44-数据库发展历史
oracle学习44-数据库发展历史
153 0
oracle学习44-数据库发展历史