我在Swing中开发了许多桌面应用程序,即使是那些使用Hibernate和Spring集成的更复杂的桌面应用程序。我发现许多事情重复并且应该以方便的方式完成,例如应用程序生命周期,日志记录,警报,授权,表单及其验证。我开始寻找框架。事实证明,我遇到了Swing应用程序框架,该框架已经存在了几年。 Spring RCP真的满足了我的期望,特别是基于Java Bean模型创建表单是我喜欢的,但我意识到它已经死了。 Netbeans RCP不适合我,我使用Eclipse而且我不想使用另一个IDE进行桌面开发。我对Eclipse RCP并不是很兴奋,我觉得它太过于面向Eclipse,我更喜欢低级耦合到任何工具,除了它不是那么简单易学。
我很惊讶在Java中开发基于桌面的业务应用程序的支持很少。就像Java只用于Web环境。那么制作此类应用程序的首选语言是什么?如果我想继续使用Java,是否有机会找到类似于Spring RCP的东西(到目前为止我还不能)?
答案 0 :(得分:11)
请尝试griffon。这基于groovy language,受grails framework启发。它运行在JVM上,语言对java程序员非常友好。
来自网站的引用
Griffon是一个用于开发桌面的应用程序框架 JVM中的应用程序,Groovy是其主要语言 选择。格里芬受Grails的启发,遵循公约 配置范例,与直观的MVC架构配合使用 命令行界面。
.... 该架构非常易于扩展。
Griffon框架可通过插件扩展。有很多 从中选择。例如,你会找到第三方Swing的插件 Swingx,Jide和Macwidgets等组件;持久性相关 像DataSource,GSQL,Hibernate等插件; 3D图形和 通过JOGL,LWJGL和Processing可以实现动画支持。还有很多 更!
答案 1 :(得分:9)
它主要取决于应用程序的大小。
对于中小型应用程序,使用不使用不同语言的JavaFX 2是有意义的,您可以从一些基本的tutorials开始。
正如您所提到的企业级应用程序Eclipse RCP和Netbeans RCP是一个不错的选择。
Netbeans RCP对于开发来说简单得多,不应仅仅因为IDE首选项而忽略它。关于它的免费book是一个很好的起点。
还有option of e4应该是eclipse的重大改进,但我不能说我已经使用过了
值得关注的相关资源可能是:
http://netbeans.dzone.com/why-from-eclipse-rcp-to-netbeans-platform
答案 2 :(得分:7)
前一段时间我问了一个类似的问题,如果你有兴趣,请参阅Swing desktop-development。
我的结论是,没有任何框架可以为您的桌面应用程序做什么,任何一个非常棒的WEBframeworks都可以为您的Web应用程序做些什么。这似乎很荒谬,但根据我的经验,由于优秀的Web框架和缺乏桌面框架,开发Web应用程序变得更加容易。
我一直在使用Spring-RCP进行2个项目。它很棒,但现在几乎无法使用,因为你坚持使用它的弹簧2.5。它对我来说“感觉”有点慢,并且在64位机器上确实是内存耗尽,这很可能是一个Spring-Swing问题:https://jira.springsource.org/browse/SPR-9628
我等了Project Valkyrie,但似乎已经死了
我认为你找不到任何完全符合你要求的东西。 http://swingx.java.net/可能会为您提供一些GUI-Widgets,比如JXDatePicker。我也推荐JGoodies Binding和JGoodies Form,两者都很棒。如果您使用客户端 - 服务器应用程序,我强烈建议使用Spring-Remoting(例如HTTP Invoker)和Spring-Security。真的让事情更简单。
我喜欢用Swing开发桌面应用程序,但不幸的是你真的要“加倍努力”。客户端 - 服务器通信,安全性甚至验证只是现在看起来过于复杂的许多事情的几个例子(与现代webframeworks相比)。另外,您可能会发现使用java-webstart自动构建,签名和部署应用程序并不容易。
Spring-RCP是迄今为止我发现的“完整”桌面框架最接近的东西,它已经死了多年。
祝你好运!
答案 3 :(得分:4)
结帐JGoodies。不仅外观更好,他们还提供了设计Swing应用程序的框架。
桌面应用程序的一个重要问题是它实际上取决于您尝试设计的内容。与webapps的网页 - >请求 - >网页不同,桌面应用程序几乎可以做任何事情。即使是商业应用,也没有标准周期。它比AJAX更像是普通的Java EE或PHP webapp。除了调用和更新特定组件之外,还有多少AJAX库实际提供了一个框架。
您可以更新菜单,按钮,面板,动态渲染,更改图形,更新数据等。
如果你只是在寻找表格,那么JGoodies可能是你最好的选择。
答案 4 :(得分:1)
我不知道任何框架,但是Netbeans
为Swing组件提供了一个拖放向导。 Eclipse
也有类似的插件,但它基于Netbeans插件。
答案 5 :(得分:1)
我发现许多事情都会重复,应该以方便的方式快速完成,例如应用程序生命周期,日志记录,警报,授权,表单及其验证。
我建议将这些内容提取到您的个人"核心"您可以在所有项目中共享和使用的库。既然你已经实现了你所谈论的东西,那么比研究一个全新的框架更容易概括它们。可能是一个私人Maven项目?
开发重点正朝着Web和移动方向发展,因此我们不应期望桌面框架供应商为桌面做出相当大的努力。