阿里云飞天发布时刻,领先大模型限免,超7000万 tokens免费体验 了解详情
写点什么

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:001344
用户头像

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

关注

评论

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

区块链电子发票应用落地,区块链电子发票系统开发

13530558032

Spring AOP核心类解析,这是最全的一篇了!!

冰河

spring aop ioc 注解驱动 切面编程

JVM调优不知道怎么回答,阿里总结四大模块,学不会就背过来

996小迁

Java 架构 面试 调优

Spock单元测试框架实战指南一Spock是什么?它和JUnit有什么区别?

Java老k

Java 单元测试 JUnit Mock spock

智慧公安扫码一键定位报警系统搭建

t13823115967

智慧公安 智慧公安扫码 一键定位报警系统搭建

周小川深度解读:DC/EP和数字人民币e-CNY

CECBC

数字人民币

《穿越数据的迷宫》笔记:第 2章 数据管理的挑战

方志

数据治理

年轻人会用C++实现一种协程吗?

ShenDu_Linux

Linux 程序员 多线程 协程 什么是多线程

我理解的信息化、数字化、数智化

boshi

数字化 数据智能 信息化

构师训练营 - 第六周学习总结

joshuamai

当千行万业的轨道,换上智能云网的高铁

脑极体

极客大学 - 架构师训练营 第十一周总结

9527

2020亚马逊“黑五”再次成为亚马逊史上最大的年终全球狂欢

爱极客侠

自己搭建服务器需要多少钱?

德胜网络-阳

什么是KMP算法(详解)

赖猫

c++ Linux KMP

一万字详解 Redis Cluster Gossip 协议

程序员历小冰

redis 分布式 redis cluster

《穿越数据的迷宫》笔记:第 3 章 DAMA的数据管理原则

方志

数据治理

Spring 源码学习 05:BeanDefinition 概念及其实现

程序员小航

spring 源码 源码阅读 BeanDefinition

甲方日常 62

句子

工作 随笔杂谈 日常

重点人员管控系统开发,可视化数据分析搭建

t13823115967

重点人员管控系统开发 智慧公安 可视化数据分析搭建

构师训练营 - 第六周课后练习

joshuamai

线程模型Reactor/Proactor的区别

Linux服务器开发

reactor 线程 多线程 Linux服务器开发 Proactor

区块链版权应用搭建,区块链版权存证平台开发

13530558032

江西吉安:一个上了区块链柚子的真情告白

CECBC

区块链 蜜柚

“黑五”前夜的裁员:无接触配送大趋势为什么都带不动亚马逊无人机?

脑极体

LeetCode题解:51. N 皇后,回溯+哈希表,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

AOT慈善币系统软件开发|AOT慈善币APP开发

系统开发 现成系统

数字货币管理三大新模式

CECBC

数字货币

架构设计之路-1

5加3彩票

架构师 代码规范

面对日益严峻的网络安全问题,CDN可以做什么?

阿里云Edge Plus

区块链商品追溯平台开发,区块链防伪追溯系统搭建

13530558032

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