32

我已经在 Swing 中开发了许多桌面应用程序,即使是那些稍微复杂一点的桌面应用程序,它们都集成了 Hibernate 和 Spring。我发现很多事情都是重复的,应该以方便快捷的方式完成,比如应用程序生命周期、日志记录、警报、授权、表单及其验证。我开始寻找框架。我遇到了 Swing 应用程序框架,它已经死了好几年了,事实证明。Spring RCP 确实符合我的期望,尤其是基于 Java Bean 模型创建表单是我喜欢的,但我意识到它也死了。Netbeans RCP 不适合我,我正在使用 Eclipse,我不想使用其他 IDE 进行桌面开发。我对 Eclipse RCP 并不是很兴奋,我觉得它太面向 Eclipse,我更喜欢与任何工具耦合度低的东西,

我很惊讶用 Java 开发基于桌面的业务应用程序的支持如此薄弱。就像Java仅用于Web环境一样。那么制作此类应用程序的首选语言是什么?如果我想继续使用 Java,是否有机会找到类似于 Spring RCP 的东西(到目前为止我找不到)?

4

6 回答 6

11

请尝试格里芬。这是基于groovy 语言并受到 grails 框架的启发。它运行在 JVM 上,语言对 Java 程序员非常友好。

来自网站的报价

Griffon 是用于在 JVM 中开发桌面应用程序的应用程序框架,其中 Groovy 是首选语言。受 Grails 的启发,Griffon 遵循约定优于配置的范式,搭配直观的 MVC 架构和命令行界面。

.... 该架构具有很强的可扩展性。

Griffon 框架可通过插件进行扩展。有很多可供选择。例如,您会找到适用于 Swingx、Jide 和 Macwidgets 等 3rd 方 Swing 组件的插件;与持久性相关的插件,如 DataSource、GSQL、Hibernate 等;可以通过 JOGL、LWJGL 和 Processing 支持 3D 图形和动画。还有很多!

于 2013-01-19T02:16:08.760 回答
10

前段时间我问了一个类似的问题,如果您有兴趣,请参阅Swing 桌面开发。

我的结论是/是根本没有框架可以为您的桌面应用程序做任何事情,任何无数伟大的 WEBframeworks 都可以为您的 web 应用程序做些什么。这似乎很荒谬,但根据我的经验,由于出色的 Web 框架和缺乏桌面框架,开发 Web 应用程序变得更加容易。

我一直在为 2 个项目使用 Spring-RCP。它很棒,但现在几乎无法使用,因为你坚持使用它的 spring 2.5。而且它对我来说“感觉”有点慢,并且在 64 位机器上真的很耗内存,这很可能是 Spring-Swing 问题:https ://jira.springsource.org/browse/SPR-9628

我等了瓦尔基里计划,但它似乎已经死了

我认为您不会找到完全满足您要求的任何东西。http://swingx.java.net/可能会为您提供一些 GUI 小部件,例如 JXDatePicker。我还推荐 JGoodies Binding 和 JGoodies Form,两者都很棒。如果您使用客户端-服务器应用程序,我强烈建议您使用 Spring-Remoting(例如 HTTP Invoker)和 Spring-Security。真的让事情变得更简单。

我喜欢用 Swing 开发桌面应用程序,但不幸的是你真的必须“加倍努力”。客户端-服务器通信、安全性甚至验证只是如今看起来过于复杂的许多事情中的几个例子(与现代 web 框架相比)。此外,您可能会发现使用 java-webstart 自动构建、签名和部署应用程序并不像应有的那么容易。

Spring-RCP 是迄今为止我发现的最接近“完整”桌面框架的东西,它已经死了好几年了。

祝你好运!

于 2013-01-25T17:59:04.903 回答
9

这主要取决于应用程序的大小。

对于中小型应用程序,使用不使用其他语言的 JavaFX 2 是有意义的,您可以从一些基本教程开始。

正如您提到的企业级应用程序Eclipse RCPNetbeans RCP是一个不错的选择。

Netbeans RCP 对于开发来说要简单得多,您不应该仅仅因为 IDE 偏好而忽略它。有一本关于它的免费书籍,这是一个很好的起点。

还有一个选项 e4应该是 Eclipse 的显着改进,但我不能说我已经使用它了

值得一看的相关资源可能是:

http://netbeans.dzone.com/why-from-eclipse-rcp-to-netbeans-platform

Netbeans RCP 与 Eclipse RCP

于 2013-01-19T01:58:04.307 回答
5

查看JGoodies。不仅外观更好,它们还提供了设计 Swing 应用程序的框架。

桌面应用程序的最大问题是它实际上取决于您要设计的内容。与网页->请求->网页的 webapps 不同,桌面应用程序几乎可以做任何事情。没有标准周期,即使对于商业应用程序也是如此。它更像 AJAX,而不是普通的 Java EE 或 PHP webapp。以及有多少 AJAX 库实际上提供了除了调用和更新特定组件之外的框架。

您可以更新菜单、按钮、面板、动态渲染的内容、更改图形、更新数据等。

如果您只是在寻找表格,那么JGoodies可能是您最好的选择。

于 2013-01-20T09:08:31.370 回答
1

我不知道任何这样的框架,但Netbeans为 Swing 组件提供了拖放向导。Eclipse也有类似的插件,但它基于 Netbeans 插件。

于 2013-01-19T01:44:24.193 回答
1

我发现很多事情都是重复的,应该以方便快捷的方式完成,比如应用程序生命周期、日志记录、警报、授权、表单及其验证。

我建议将这些提取到您的个人“核心”库中,您可以在所有项目中共享和使用。既然你已经实现了你正在谈论的东西,那么概括它们应该比研究一个全新的框架更容易。可能是一个私人 Maven 项目?

开发重点正在转向 Web 和移动,因此我们不应该期望桌面框架供应商做出任何重大努力。

于 2014-11-25T20:00:53.500 回答