用于交互式动画的 Java Swing 与 HTML5 Canvas

Posted

技术标签:

【中文标题】用于交互式动画的 Java Swing 与 HTML5 Canvas【英文标题】:Java Swing vs HTML5 Canvas for interactive animations 【发布时间】:2011-05-13 23:58:20 【问题描述】:

我想创建一个类似于Visual Thesaurus 提供的交互式动画。我正在评估我可以采用的不同技术,我想知道 在 Java 小程序中使用 Swing 或在 HTML5 中使用其画布实现图形可视化的优缺点是什么(我只知道他们的名字)

我知道 Java 和一点 javascript,我想避免使用专有技术

编辑:最重要的是:HTML 5 画布是否支持事件监听器,就像it seems to me Swing 那样?

【问题讨论】:

不考虑 Flash 或 Silverlight? @Adam 我会说他应该在这里使用 Flash,Silverlight ......甚至 MS 都说它只希望在电话上使用 Silverlight。画布是当前状态下的野兽。 @Ivo - 我同意。除非他需要 ios 支持,在这种情况下画布是最好的。查看 Visual Thesaurus,可能可以使用 SVG 和 JavaScript 来实现,这可能是 RaphaelJS 库的帮助。 好吧,我告诉了“我可以采用的不同技术”,但我实际上打算使用 java 与 html,因为我是一名 java 程序员并且知道一点 javascript。我也不想使用专有技术 @cdarwin 然后转到 HTML,Applet 已损坏无法修复。例如在Linux下,一旦苹果失去焦点,键盘输入就不起作用了。 【参考方案1】:

我会选择 RaphaelJS http://raphaeljs.com/ 这是一个非常好的 Javascript 图形库。它不是基于 HTML5(画布)的,而是使用矢量 SVG(和 VML)图形,但它可以在大多数浏览器(甚至更旧的 IE)上运行。如果您想要内置图表,请参阅http://g.raphaeljs.com/

另外,这是一个主要的优点,你不会被限制使用小程序。

这里有一些 raphaelJS 示例:http://raphaeljs.com/graffle.htmlhttp://raphaeljs.com/curver.html

【讨论】:

【参考方案2】:

使用 Java,您可以使用 prefuse,这样您将节省大量时间。不知道html5有没有类似的api,没有的话就自己写吧。

Here 是一个使用 prefuse 的例子

优点是您不必处理浏览器之间的不兼容问题。 缺点是客户端机器上可能没有安装 jvm。

您还必须考虑您对每项技术的熟练程度。

【讨论】:

还有“Flare”,它基本上是 Actionscript flare.prefuse.org的一个前置端口

以上是关于用于交互式动画的 Java Swing 与 HTML5 Canvas的主要内容,如果未能解决你的问题,请参考以下文章

SWING

java笔记之图形类详解

Java swing 动画看起来很不稳定。如何让它看起来很专业?

使用 swing 的动画和使用 javafx 的动画之间的区别

java.swing答答租车

Java Swing:轻量级和重量级组件的叠加组件?