SWT中使用Swing
2016-05-17 14:51
337 查看
在SWT出现之前,已经有众多的Swing程序和控件被开发出来,为了充分利用这些现有的资源,SWT需要提供一种在SWT中使用Swing控件的途径。
Swing是通过在AWT的Canvas控件上绘图以显示各种控件的,而AWT的控件与SWT的原理相似,都是直接对应到操作系统的控件资源,因此只要使用SWT模拟出AWT的Canvas,Swing的控件就可以在上面运行。为此,SWT提供了一个org.eclipse.swt.awt.SWT_AWT类,该类通常被叫做SWT_AWT桥。
在SWT_AWT中,提供了一个方法用于从SWT中的Composite容器得到一个AWT的Frame容器new_Frame(Composite composite)。我们既然得到了一个AWT Frame,就可以向这个Frame中添加一个Swing的容器Panel。下面我们来看一个示例:
运行效果如图所示:
Swing是通过在AWT的Canvas控件上绘图以显示各种控件的,而AWT的控件与SWT的原理相似,都是直接对应到操作系统的控件资源,因此只要使用SWT模拟出AWT的Canvas,Swing的控件就可以在上面运行。为此,SWT提供了一个org.eclipse.swt.awt.SWT_AWT类,该类通常被叫做SWT_AWT桥。
在SWT_AWT中,提供了一个方法用于从SWT中的Composite容器得到一个AWT的Frame容器new_Frame(Composite composite)。我们既然得到了一个AWT Frame,就可以向这个Frame中添加一个Swing的容器Panel。下面我们来看一个示例:
package swt; import java.awt.Frame; import javax.swing.JButton; import javax.swing.JPanel; import org.eclipse.swt.SWT; import org.eclipse.swt.awt.SWT_AWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.junit.Test; public class SwingTest { @Test public void test() { Display display = Display.getDefault(); Shell shell = new Shell(display); shell.setBounds(100, 100, 200, 100); shell.open(); Composite composite = new Composite(shell, SWT.EMBEDDED); composite.setBounds(0, 0, 200, 100); Frame frame = SWT_AWT.new_Frame(composite); JPanel panel = new JPanel(); panel.add(new JButton("I'm a swing button")); frame.add(panel); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose(); } }
运行效果如图所示:
相关文章推荐
- [原创]java局域网聊天系统
- java很神奇 用swing制作欢迎屏幕
- HTML5调用摄像头实例
- Canvas 在高清屏下绘制图片变模糊的解决方法
- 使用canvas实现仿新浪微博头像截取上传功能
- js+HTML5实现canvas多种颜色渐变效果的方法
- javascript+HTML5的Canvas实现Lab单车动画效果
- js+canvas绘制矩形的方法
- JavaScript+html5 canvas制作的百花齐放效果完整实例
- jQuery+canvas实现的球体平抛及颜色动态变换效果
- Swing常用组件之单选按钮和复选框
- html5 canvas js(数字时钟)实例代码
- java基于swing实现的五子棋游戏代码
- Swing常用组件之文本框和文本区
- JavaScript+canvas实现七色板效果实例
- javascript+canvas制作九宫格小程序
- 通过javascript把图片转化为字符画
- js+html5通过canvas指定开始和结束点绘制线条的方法
- JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
- SWT(JFace)体验之RowLayout布局