写点什么

Pivot:重新发明 Java Applet?

  • 2008-06-18
  • 本文字数:1401 字

    阅读完需:约 5 分钟

上周, Greg Brown 公布了一个新的 Java 开源 GUI 工具—— Pivot

我想向 Java 开发社区的同仁们介绍一下 Pivot 平台。Privot 是专门开发 Web 或桌面都可以发布的高质跨平台应用开源框架。最初,它只是 VMware 下的研发项目,但现在向整个社区开放。对于那些想用 Java 来创建富客户端应用的程序员来说,Pivot 是个不错的选择。

Pivot 的实现借鉴了其它工具箱的一些点子(比如 Swing),此外,它也结合了 Java2D 在过去几年中实现的优化。在 Pivot 上实现应用程序的工作主要是结合 Java 和 XML 的开发。

Pivot 平台的定位是内嵌于浏览器的 Flex 和 Silverlight 等富客户端开发技术的直接竞争对手。Pivot 开发人员将它的某些部分看作是 Java 6 update 10 ——也就是众所周知的 consumer JRE 的一部分。

2007 年 3 月,Greg Brown 曾在他的博客上发表过一篇名为“Reinventing the Applet”的文章。在这篇文章中,他谈到了当前 applet 技术的缺点,并就将 applet 变得更具竞争力这个问题提出了自己的见解。最近,他公开宣布 Pivot 的博文其实也是前面这篇文章的续篇。在续篇中,他把 consumer JRE 描述为 Pivot 成功的关键所在。JRE update 中很多技术在使用 applet 开发各种嵌入式应用中起到了极为重要的作用:

  • Jave 内核——Java 内核大大减小了需要下载的 JRE 的大小。
  • 新一代的 Java 插件——新的 Java 插件的运行不再依赖浏览器,以免导致浏览器发生任何死锁、崩溃、或者运行缓慢现象。新插件在启动和其它状态转换时提供更好的用户反馈。
  • Java 开发工具箱——开发工具箱提供了所有必需的 API;实现了浏览器集成以提供完美安装或升级;简化了 Java 版本的配置;必要时帮助用户升级。
  • Java 快速启动——快速启动实际上是借用操作系统硬盘缓存来缩短 Java 虚拟机的启动时间。
  • Direct3D 集成——对于 Windows 用户来说,Direct3D 管道中的修改应该可以改善任何应用到 Java2D 的显示。对于其它操作系统用户来说,之前已彻底修改过 OpenGL 的 Java2D 对此也会有所帮助。

Java 6 update 10 目前尚且处于 beta 版,按计划,今年下半年会发布正式版本。

Pivot 的出现得到了很多正面评论,也有很多人对此持质疑态度—— Ben Galbraith 就是这群人中的一个,在反馈用户体验的同时,他提出了很多问题:

我正在读您的类库。我觉得很有趣的是您的上层构架跟 Swing 太相像了。那些组件、UI 控件、侦听器等等都非常相似(比如,布局的实现就特别相近),难道您想要实现的是“进化版 Swing”? 当然,您确实也点到了 Swing 一些典型的缺点:

  • 设定的宽和高只能作为独立属性或原子属性。
  • 标签位置的绑定(但您支持标签文字的格式排版吗?好像没有吧)
  • 基于行的表格数据模型
  • 内置“表单”构建

此外,我还有一些问题不太明白:

  • 您干嘛非要构建自己的 collection 类?为什么,伙计,为什么您要大费周折去重新构建 collection 类呢?
  • 您提供跟 Swing 的 UIDefaults 类似的功能吗?
  • 您干嘛把 state 放到 Action 接口外?您有跟 Swing Action 接口共享 action state 相近的特性吗?
  • 在您的代码中,我没看到任何布局管理,您又是如何来处理布局的呢?在用户指南中提到 skin 可以管理布局,但除了 Container 中的内置方法外,我没找到任何可以实现管理的方式。

Pivot 提供一个 demo applet 可供试用,关于如何使用 Pivot 的指南目前还在撰写中。从 Pivot 主页 Greg Brown 的 blog 上,你可以找到更多 Pivot 的详细资料。

查看英文原文: Pivot: Re-Inventing the Java Applet?

2008-06-18 21:001006
用户头像

发布了 71 篇内容, 共 19.3 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

谈 C++17 里的 State 模式之二

hedzr

c++ 算法 设计模式 Design Patterns 有限状态机

自动驾驶混战,剑气二宗谁能笑傲江湖?

白洞计划

软件架构之原则、风格和实践

俞凡

架构

Object.defineProperty的缺点及Vue3为什么用Proxy

wudaxue

linux手误rm可能不需要跑路

入门小站

Linux

在线心语日历批量生成工具

入门小站

工具

细说包管理器yarn和npm

devpoint

npm YARN Node 10月月更

SpringMVC源码分析-HandlerAdapter(4)-ModelAndViewContain组件分析

Brave

源码 springmvc 10月月更

第 9 章 -《Linux 一学就会》-文件的归档和压缩 tar---zip

学神来啦

Linux 运维 linux学习

如何应对员工犯错?

石云升

项目管理 管理 引航计划 内容合集 10月月更

《写给互联网工程师的5G书》全文pdf开放下载

俞凡

架构 5G 网络 通信 10月月更

【LeetCode】 旅行终点站Java题解

Albert

算法 LeetCode 10月月更

1. 滚雪球学Python第四季开启,一需三吃,Python 函数式编程初识,面向过程,面向对象,函数式

梦想橡皮擦

10月月更

linux线上CPU100%排查

入门小站

Linux

[27]智慧金融--AI目前最被看好的落地领域

数据与智能

人工智能

容器 & 服务:Helm Charts(一)

程序员架构进阶

架构 Kubernetes 容器 Helm Charts 10月月更

聊一聊差分放大器

不脱发的程序猿

嵌入式 电路设计 硬件开发 运算放大器

微博系统中”微博评论“的高性能高可用计算架构

michael

#架构实战营

在线GIF图片帧修改工具

入门小站

工具

翻译积累 - Java正则表达式Pattern类

小马哥

翻译 日更

springboot vue失物招领网站源码

清风

源码 Vue springboot java 计算机毕业设计

以匠心正道,以决心致远:毫末智行的自动驾驶之路

脑极体

javaweb springboot汽车租赁系统源码

清风

源码 springboot 计算机毕业设计

2. Python函数式编程中的字符串,元组,函数的分类,高阶函数,一篇文章都介绍一遍

梦想橡皮擦

10月月更

【Flutter 专题】138 图解自定义国旗渐变头像

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 10月月更

003云原生之架构原则

穿过生命散发芬芳

云原生 10月月更

独一无二的「MySQL调优金字塔」相信也许你拥有了它,你就很可能拥有了全世界。

洛神灬殇

性能优化 后端 MySQL 数据库 引航计划 10月月更

数据结构与算法 - 复杂度

小马哥

数据结构与算法 日更

Docker OOM Killer

BeyondLife

Docker JVM trouble shooting

【实战】基于TensorRT 加速YOLO系列以及其他加速算法实战与对比

cv君

AI 引航计划

手把手教学基于深度学习的遥感影像倾斜框算法训练与分析

cv君

AI 引航计划

Pivot:重新发明Java Applet?_Java_R.J. Lorimer_InfoQ精选文章