本章介绍如何在SWT中使用SWING组件,以及实现拖拽功能,访问ActiveX控件,还将预瞻性的介绍尚未正式发布的JFace数据绑定框架。本章内容属于较高级或较生僻的应用,跳过本章不会影响后面内容的学习。
18.1 嵌入AWT/SWING组件
SWT支持在组件中嵌入AWT/SWING组件,不过运行效率低下。选择这种方式往往是不得已而为之,比如要在SWT软件框架中使用一个现成的AWT/SWING报表控件,或者一个公司遗留下来的AWT/SWING软件。
SWT提供了一个从SWT到AWT的桥接,它通过SWT_AWT.new_Frame()方法可以得到一个嵌入在SWT面板上的java.awt.Frame组件。而Frame是AWT/SWING的容器组件,这样我们就可以在Frame容器中创建任何AWT/SWING组件,实例上也就打通了从SWT通向AWT/SWING世界的道路。具体的代码示例如下所示:
//--------------文件名:AwtInSwt.java----------------------
shell.setLayout(new RowLayout());
Composite comp = new Composite(shell, SWT.EMBEDDED);// 必须用SWT.EMBEDDED式样
java.awt.Frame frame = SWT_AWT.new_Frame(comp);
java.awt.Button button = new java.awt.Button();
button.setLabel("AWT按钮");
frame.add(button);
注意:本书“第3.5.4节 类型过滤”讲了如何过滤掉java.awt.*,javax.swing.*类型的代码提示,如果你按照书中做了设置,请再将它复原。






