今天遇到一个问题,就是要在一个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这样的带有双缓冲的控件,否则图象在运动时会产生明显的闪烁。
posted on 2005-07-17 23:10 八进制 阅读(2921) 评论(6) 编辑 收藏 网摘 所属分类: Java
评论
#1楼 2005-09-13 17:14 YYQQ [未注册用户]
不知道您是否遇到过这样的需求:要在一个GEF的Editor中显示SWT控件?这时该怎么办呢?
回复 引用
#2楼 [楼主] 2005-09-13 22:53 八进制
其实现在我就在为一个类似的问题烦恼,而且我还没有想出什么好办法。
Draw2d里倒有一些简单的控件(Clickable的子类)可以放在editor里,我想你多半也知道了。
回复 引用 查看
#3楼 2005-09-14 12:14 YYQQ [未注册用户]
这个我已作过试验。感觉这些控件较难控制,需要设置太多的东西。另外,还缺少如Table、Tree等对象,如果自己做也是很麻烦。苦恼中
回复 引用
#4楼 2006-05-29 17:29 baal [未注册用户]
八进制你好,我想问下如何在得到或判断出table中看不见的column?
回复 引用
#5楼 2006-10-31 15:52 路过 [未注册用户]
canvas = new java.awt.Canvas() {
public void paint(Graphics g) {
super.paint(g);
if (chart != null)
chart.draw((Graphics2D) g, getBounds());
}
};
canvasFrame.add(canvas);
___________________________________________________________
干吗不这样呢?
canvasFrame.add(new ChartPanel(chart));
分享到:
相关推荐
swt运行时所需的dll文件,包括swt-awt-win32-3236.dll swt-gdip-win32-3236.dll swt-win32-3229.dll swt-win32-3236.dll
jface/swt windows系统中所需动态链接库
SWT(Standard Widget Toolkit)是Java编程中的一种GUI工具包,它的设计目标是提供比AWT和Swing更高效的性能,同时保持跨平台的能力。SWT利用本地系统资源来创建窗口、按钮、文本框等控件,从而实现更快的渲染速度和...
《DJNativeSwing-SWT-0-9-8:Swing与 SWT 的融合与实践》 在Java开发领域,Swing和SWT是两种常用的GUI(图形用户界面)工具包,各自有着独特的特性和优势。DJNativeSwing-SWT-0-9-8是一个开源项目,它致力于将Swing...
SWT(Standard Widget Toolkit) Standard Widget Toolkit是一个开源的GUI编程框架,与AWT/Swing有相似的用处,著名的开源IDE-eclipse就是用SWT开发的。由于官网下载的速度特的慢,所以在此奉献一份给大家。希望对你有...
SWT(Standard Widget Toolkit) Standard Widget Toolkit是一个开源的GUI编程框架,与AWT/Swing有相似的用处,著名的开源IDE-eclipse就是用SWT开发的。由于在官网下载的速度特别慢,所以在这里特别奉献一份给大家。
相比Java的默认GUI库AWT和Swing,SWT具有更好的性能和更接近操作系统原生界面的外观。SWT的核心组件包括按钮、文本框、滚动条、表格等,它们都直接映射到操作系统提供的相应控件,确保了与操作系统的无缝集成。 接...
在Java编程环境中,SWT(Standard Widget Toolkit)和AWT(Abstract Window Toolkit)以及SWING是三种常用的图形用户界面(GUI)开发库。SWT主要为Eclipse IDE提供支持,而AWT和SWING则是Java标准库的一部分。这篇...
SWT(Standard Widget Toolkit)是Java编程环境中一个用于创建用户界面的开源库,它是Eclipse项目的组成部分,主要用于替代Java标准库中的AWT和Swing组件。"swt-3.8M5-win32-win32-x86"是SWT的一个特定版本,针对...
DJNativeSwing-SWT.jar是这个库的核心,它实现了将SWT组件集成到Swing应用中的桥梁,使得开发者可以在一个应用中同时利用Swing和SWT的优点。 DJNativeSwing.jar是DJProject的主要库,它包含了一系列用于构建混合...
在Java中,主要有三个库用于创建GUI:Abstract Window Toolkit (AWT)、Swing和Standard Widget Toolkit (SWT)。下面将详细阐述这三个库的特点、用途以及它们之间的差异。 ### AWT(Abstract Window Toolkit) AWT是...
今天遇到一个问题,就是要在一个Eclipse插件里显示JFreeChart的图形,因为后者是基于Java2D的,要把图形显示在SWT应用程序里需要利用SWT-AWT桥接器来实现,虽说桥接的方式多半会伴随着性能下降,但总归是一个解决...
在Java 1.0版本中,AWT的目标是创建一个跨平台的GUI框架,允许程序员编写能够在不同操作系统上运行的GUI应用。然而,初期的AWT并未完全实现这一目标,因为它在不同平台上的表现并不一致。从Java 1.1开始,这一情况...
SWT允许开发者创建桌面应用程序,而无需受限于Java的Abstract Window Toolkit (AWT) 或 Swing。 2. JFace:JFace是建立在SWT之上的高级UI框架,它简化了SWT的使用,提供了数据绑定、视图、对话框和表单构建等高级...
SWT 的优势在于其高效性,因为它避免了Java AWT 和 Swing 中的抽象层,直接利用了操作系统提供的原生组件。 JFace 是建立在 SWT 之上的更高层次的抽象,它为 SWT 提供了一种模型-视图-控制器(MVC)的编程模型。...
SWT (Standard Widget Toolkit) 是一个开放源代码的Java库,用于在Java应用程序中创建原生用户界面。这个"swt-3.5.2-gtk-linux-x86_64.zip"压缩包包含了SWT的3.5.2版本,专为64位Linux系统与GTK+图形库构建。GTK+是...
4. swt-awt-win32-3235.dll:此文件提供了SWT与Java AWT之间的桥接,允许开发者在SWT应用中集成或与AWT组件交互。 5. swt.jar:这是一个Java类库文件,包含了SWT的所有Java类,开发者在编写Java代码时会导入这个库...
- **初始化**:在创建SWT应用时,必须先调用`Display`类的`getSystemDisplay()`方法获取显示器对象,然后才能创建窗口和其他组件。 - **资源管理**:SWT组件创建后,需要正确地释放资源,避免内存泄漏。通常在关闭...
本资源"book-pro-java-swt-src-01-2005.zip"特别针对初学者,提供了SWT和JFace的实例代码,帮助新手快速掌握这两个库的使用。 SWT是Eclipse基金会开发的一个开源GUI库,它直接与操作系统进行交互,提供了高性能、...
这一组组件可以用来在Java上开发图形用户界面,并提供了Java Swing与AWT组件的原生代码替代选项。SWT结合了所运行的平台上的外观与操作感受来提供快速构建GUI的方法,并让它们看起来确实就像是属于所运行的平台。