AICon 北京站 Keynote 亮点揭秘,想了解 Agent 智能体来就对了! 了解详情
写点什么

JRuby GUI MVC 框架 Monkeybars 1.0 发布

  • 2009-02-15
  • 本文字数:2385 字

    阅读完需:约 8 分钟

如今有很多 JRuby 的程序库,通过它们,我们能够更加容易地使用 Java 工具进行 GUI 开发

我们采访了 Monkeybars 团队的 James Britt 。James 对 Moneybars 项目做了一个简短的介绍:

Monkeybars 是一个 JRuby 的 MVC 框架,这个框架基于 Swing 库之上。本质上来说,它并不是对 Swing 的一个重新封装,而是使用 Swing 类封装视图逻辑,从而将其和控制器逻辑和(Ruby 中的)模型逻辑分离开。从这方面来说,它提供了免费、高质量的所见即所得 Swing UI 设计工具,将我们从烦躁的 UI 设计中解脱出来,专注于 Ruby 开发。Monkeybars 最开始是从一个现实的应用中抽取出来的,它将专注于测试和维 护大型应用程序的项目。

James 阐述了 Monkeybars 如何处理交互:

Monkeybars 的目的之一是将视图和控制器分离开来;一个控制器从来不需要一个视图的直接引用。它使用信号来间接告诉视图应该要做些什么。这样的话,对控制器的测试就会更加简单,你无需担心 UI 的问题。

Monkeybars 没有直接实现 GUI 组件,它提供给我们任意选择 GUI 组件的机会:

Monkeybars 期望能够有表示 Swing UI 的类。在大部分情况下,我们开开心心地使用 Netbeans UI 编辑器来描画和编译 UI 组件,然后在应用程序中使用 Ruby 代码引用这些组件。理论上来说,你可以使用 Profigacy、Cherry 或者 SwiXML+Builder 等等,但是我还没有看到有代码这样做(同样见我关于 Monkeybars 的额外计划和简易编写内联 Swing 代码的评论)。

James 解释了开发者应该如何使用 Monkeybars:

很多用户都是在编写一些无谓的 JRuby 程序时随便用用 Monkeybars,但是我敢肯定有人在现存的 Java 应用程序中使用了它。目前 Monkeybars 有 gem 和 jar 的发布形式(同样也有源代码形式)。

我们希望知道是否可以在已经存在的应用程序中,使用 Monkeybars 处理 GUI 脚本:

[…] 在 Java 应用程序中,你可以加载和执行使用 Monkeybars 的 Ruby 代码,或者在 Ruby 应用程序中(假设在 JRuby 下执行)希望调用 GUI 的时候使用 Monkeybars。 虽然现在的代码不支持桌面 GUI,但是你的问题让我考虑是否需要现在使用现在的代码开发一个。例如,当开发一个 Web 应用的时候,如果使用一个优雅的 GUI 而不是在浏览器或者终端中呈现错误,那么这也许是一个很优秀的解决方案。将 Monkeybars 集成到 Ramaze 应用中,我们可以在开发的时候使 用 Swing 组件。我们也可以在一个多窗口 GUI 控制台应用程序中使用 Monkeybars 来查看源代码和文档。

在 Monkeybars 应用开发中, Rawr 是一个非常有用的工具。James 是这么解释 rawr 的:

Rawr 是另外一个从现实需求中演化出来的项目。它将 Monkeybars 集成到一个可执行的 jar 包中,提供了一些有用的 Rake 任务。你也可以将其集 成到 Windows 的 exe 程序或者 Mac 的 app 程序中(我们正在努力编写一个 Linux 包)。这个项目包括图标、媒体和内容 jar 包,还能够将 Ruby 编译进类中,提高载入速度。这就是我们如何将 JotBot 和我们的时间追踪程序集成在一起的。我们相信这个时间追踪程序是第一个商业 JRuby 桌 面应用程序。

我们也询问了一些 1.0 版之后,Monkeybars 未来如何发展的问题:

现在的核心是相当的稳定,大约一年之内都不需要做任何重要的修改。如果我们做了一些重大的改变的话,那么有一些大型应用程序将会花费大量的代价来重构,所以我们将来可能只是在这个基础上增量构建而不是做出修改。 但是,正得益于这种稳定性,我们可以考虑一些特性。例如,我们希望能够使用自定义的 DSL 或者构建器语法更加容易地创建 Swing UI 类。Swing 是非常巨大的,所以我们不打算封装所有的 Swing 组件,但是使用常规的 Ruby 语法,很多基础的 UI 形式和组件应该更容易使用。

我们现在还关注应用程序生成器。很多应用程序都有同样的形式和行为:启动画面(Splash Screen)、系统托盘图标、帮助和“关于”表格等。通过一些命令行调用或者 Rake 任务,程序员应该能够很方便地获得一个提供最少功能的桌面程序。然 后这个应用程序可以使用内联代码或者已编译的 Java 类来添加额外的 UI 组件。

Logan 已经使用了视图绑定功能,这个功能使得我们更加容易地在模型和视图之间建立映射,并且能让我们看起来数据一直是保持同步的。

另外一个项目将我们认为 Swing 的一些通用功能组合起来,但是现在我们现在还没有开始进行这个项目,也许这个项目并不容易。例如,禁止组合框中特定的元 素或者文本域的上下文菜单。我们也在努力地使 Monkeybars 能够更好地和 Cucumber 和 RSpec 一起工作;在这方面,我们已经做了一些工作。

最后,James 提供了一系列指导 Monkeybars 开发的资源,如果仍然不明白的话,那么可以直接询问 Monkeybars 的核心团队(现在是 James、Logan Barnett 和 David Koontz):

当然有 Monkeybars.org;我们现在正在更新 1.0 版本的文档和截图。 也可以通过 Freenode 联系#monkeybars 获取信息,而且还有 Monkeybars 的 Google group:

http://groups.google.com/group/monkeybars Logan Barnett 关于 Monkeybars 的博客:

http://www.logustus.com 在 RubyConf 2008 上 David Knootz 的视频:

http://rubyconf2008.confreaks.com/monkeybars-easy-cross-platform-guis.html
Martin Slader 在 Ruby Manor 中使用了 Monkeybars: http://rubymanor.org/videos/gui_manor_born/
开发者可以下载 JotBot,并且请求一个免费的试用 key 来尝试商业版本的 Monkeybars 应用程序:
http://www.getjotbot.com
我们也开始将一些东西迁移到 Kenai,这个网站更加稳定,这样能够为用户更好地提供文档。 http://kenai.com/projects/monkeybars

一旦这些东西整理好,我们会很快地在 Monkeybars 主页上放出详细信息。 你也可以通过 Twitter 来联系我们:

@jamesbritt
@logan_barnett
@dkoontz
@thehappycampers

那么。你会使用什么工具来构建 JRuby 的 GUI 呢?

查看英文原文: JRuby GUI MVC Framework Monkeybars Goes 1.0

2009-02-15 09:581834
用户头像

发布了 90 篇内容, 共 36.8 次阅读, 收获喜欢 5 次。

关注

评论

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

Flutter

Geek_7e907c

低代码行业涌出大量玩家,企业该如何做出选择?

优秀

低代码

【得物技术】浅谈本地缓存与分布式缓存

得物技术

缓存 测试 质量 本地缓存 分布式缓存

数据线索梳理

顿晓

数据 5月日更

Windows后渗透之权限维持

Thrash

DICOM图像中灰度理解

Lazy

脑科学 脑科学软件工程 脑影像

从一线城市回到三四线城市的第一个月

布衣骇客

生活,随想 个人总结

5G Capital一年,“首都标准”初现

脑极体

Flutter Tab

Geek_7e907c

浪潮云“1231”业务战略正式发布 “分布式云+”行动计划首次亮相

云计算

谈谈企业的成本

石云升

创业 职场经验 5月日更

Webrtc 屏幕共享

融云 RongCloud

在FL Studio中如何混音你的鼓组采样与旋律采样

奈奈的杂社

经验分享 知识分享

阿里内网流传的9w字图解网络(全彩版)GitHub现已下载量过百万

Java架构之路

Java 程序员 架构 面试 编程语言

研发知识:MDD、MDF是什么?

paraboy1

开源十问, 社区新人快速上手指南

DT极客

飞书悄然开辟新战线,协同办公之外另有新动作?

ToB行业头条

飞书 协同办公

中国信创生态系列报道|融云CEO韩迎:坚持双轮驱动,信创未来大有可为

融云 RongCloud

记一次java读取matlab数据方式

Lazy

Java 后端 matlab 脑科学软件工程

Docker网络学习第五篇-基础网络模式

Lazy

Docker

如何设计高效的HBase数据模型

Jowin

HBase

容器Pod语系修改

ilinux

看完了蚂蚁金服年薪180万的大佬扔给我的“Java成长笔记”,差距不止一点点

Java 程序员 架构 面试 计算机

C++ & Linux 后端:进BAT的学习路线

赖猫

c++ Linux 后端 服务器端开发

cornerstone 基础概念篇(一)

Lazy

cornerstone 脑科学 脑科学软件工程 脑影像

cornerstone 基础概念篇(二)

Lazy

大前端 脑科学 脑科学软件工程 脑影像

阿里技术官最新总结12W字JAVA面试宝典,吊打面试官的硬核法宝!

Java架构之路

Java 程序员 架构 面试 编程语言

这份Github下载量高达76.9W次的《Java系列面试宝典》,足以吊打各个大厂面试官!

Java架构之路

Java 程序员 架构 面试 编程语言

CRUD程序员勿进!全身心投入才能读懂腾讯大佬亲码的“Java微服务”学习笔记

Java架构师迁哥

Java岗面试攻略分享,阿里的offer真的不难拿

Java架构师迁哥

打字员为什么要去看商业模式

ES_her0

5月日更

JRuby GUI MVC框架Monkeybars 1.0发布_Java_Werner Schuster_InfoQ精选文章