Webswing 是什么
Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器。
Swing 框架的时代已经过去,桌面应用不流行了,现在是在线应用、移动应用的天下。但已有的 Swing 桌面应用怎么办呢?使用 Applet 技术已经被证明是不安全的了,将应用重写成 Web 应用成本又太高,所以 Webswing 应运而生。通过 Webswing,你的应用可以安全地运行在服务端,用户的浏览器端只显示界面,并且这一切不用改任何一行已有代码。
工作原理
从用户的视角 Webswing 就像一个常规的 Web 应用。用户在访问 URL 并鉴权成功后可选择已授权的 Swing 应用进行运行,服务端会创建应用实例并通过 Webswing 将界面渲染到浏览器端。用户和应用交互时就像在使用桌面应用一样。
从技术的视角看,Webswing 由两部分构成。第一部分是 Web 分发器,它负责和浏览器通过 [WebSocket] (或者浏览器支持的一些推送技术)进行通讯,也负责启动应用实例以及 JMS 消息通讯。第二部分是通过 Webswing 定制的 java.awt.Toolkit
实现来执行的 Swing 应用,通过这个 AWT Toolkit 实现将应用内容发送到浏览器端,然后浏览器端将内容数据转换为 Canvas 元素进行最终渲染。浏览器鼠标、键盘事件将被发送到 Webswing,然后转换为 Swing 事件格式并发送给 Swing 应用实例进行处理。
示例截图
运行一个简单的 Swing 应用:
浏览器里面跑 [NetBeans] 就是这种体验:
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于