Webswing 是什么 Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器。 [图片] Swing 框架的时代已经过去,桌面应用不流行了,现在是在线应用、移动应用的天下。但已有的 Swing 桌面应用怎么办呢?使用 Applet 技术已经被证明是不安全的了,将应用重 ..

将 Java Swing 应用变成 Web 应用

本贴最后更新于 1148 天前,其中的信息可能已经时异事殊

Webswing 是什么

Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器。

1472262559817

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 应用:

1472268112066

浏览器里面跑 [NetBeans] 就是这种体验:

1472267934469

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    2352 引用 • 7819 回帖 • 891 关注
  • Swing
    7 引用 • 31 回帖
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 518 关注
  • HTML5
    26 引用 • 66 回帖 • 697 关注
15 回帖
请输入回帖内容...
  • relyn

    很酷的感觉 ~

  • zonghua

    我记得 Swing 是没法更改窗口样式的,只能用系统默认

  • zonghua

    是他内置了一个 JVM 吗?

    1 回复
  • 88250

    @zonghua 没仔细研究

  • Eddie

    @zonghua 可以修改的。

  • Eddie

    感觉比 gwt,vaadin 差不多。

  • 88250

    @Genji Webswing 是直接做转换,不是一个开发框架。

  • Eddie

    @88250 感觉就是公司内部管理的后台能有用武之地

  • 88250 1

    @Genji 哈哈 ~ 还有一个问题是 Java 太吃内存。Webswing 应该是每个用户会话就会启动一个 Java 应用实例,估计服务器人一多马上就炸了。

    1 回复
  • Angonger

    测试回复引用

  • 714593351

    应该是引入了 jre lib 吧

  • xxrui

    这个并没有什么用吧 ?

    1 回复
  • 88250

    可以用来炫技 ~

  • ouzhouyou

    多人 Web 在线协作飙车.

  • UniVista

    用起来卡不卡啊!

请输入回帖内容 ...