2010-06-21 66 views
11

我主要开发Java EE,现在我处于需要编写一个小型本地Java应用程序的情况。Java GUI框架 - 哪里有?

但tbh我有点失落,哪些框架(Swing,SWT等)在那里?其中一种快速开发也有可能吗?也许有人可以提供我一些链接或分享他的经验。

回答

3

我有一个类似的事情做了一阵子回来。我终于决定了Swing App Framework,因为它不会成为统治所有人的框架。最后,我写了一个小应用程序,没有什么惊喜,代码证明是相当干净的(包括在ackground任务中上传),客户很高兴,我很高兴。

它的目的是提供(从blurp被盗)

  • 应用生命周期,特别是GUI启动和关闭。
  • 支持管理和加载资源,如字符串,格式化消息,图像,颜色,字体以及桌面应用程序通用的其他类型。
  • 支持定义,管理和绑定操作,包括异步运行的操作(在“背景”中)。
  • 持久会话状态:支持从应用程序的一次运行到下一次运行,自动有选择地保存GUI状态。

这正是我所需要的。

警告:在这个框架中似乎没有多少生命,因为有传言说驱动力已经让Sun/Oracle早日离开。

更新:一些开发人员已经在名为'Better Swing Application Framework'的项目Kenai中分叉。所以可能会有生命后的生命

+0

还的全部功能,荡库都捆绑了JDK的,不像SWT – 2010-06-21 17:53:27

+0

真那也是一个考虑因素。过去我也完成了eclipse RCP和插件,但是我发现一个简单的小工具的开销太高了。另外我在ubuntu下开发并在Windows上部署,所以我不必处理不同的SWT二进制文件。所有的小事情,但他们加起来: – 2010-06-21 19:54:41

1

看看Apache Pivot。它的目的是成为比普通Swing更高层次更现代化的框架,它仍然使用Java而不是一路前往JavaFX。它将自己定位为RIA工具包,但它可以轻松用于独立桌面应用程序。来自网站:

Apache Pivot是一个开源平台,用于在Java中构建丰富的互联网应用程序。它将现代RIA工具包的增强的生产力和可用性功能与Java平台的稳健性相结合。透视应用程序是使用Java和XML的组合编写的,可以作为applet运行,也可以作为独立的(可选)脱机桌面应用程序运行。 [...] Pivot包含了一些附加功能,可以使构建现代GUI应用程序变得更加简单,包括声明式UI,数据绑定,效果和转换以及Web服务集成。

9

Swing和SWT是两个主要的候选人,是的。 JavaFX也浮现在脑海中,但我认为它尚未准备好迎接黄金时代:它没有值得一提的UI编辑工具,我知道现实生活中唯一的企业UI原型是一场惨败......

Swing和SWT是你可能想到的两个。Swing的基本优点是:

  • 更独立的平台
  • 在性能方面更加一致
  • 更好的免费UI设计师(的NetBeans)
  • 非常灵活
  • 可以在JavaFX的
  • 使用

SWT的优点是:

  • 简单的API
  • 使用原生UI组件时,它可以(用户界面更类似于在同一环境中的其他应用程序)
  • 在某些时候,有人认为它比摆动速度更快,虽然这是在Windows只有两个(NetBeans PlatformEclipse RCP)存在

相当先进的富客户端框架,如果你打算建什么不平凡的,我会由衷地建议你使用其中的一个:你模块化的应用程序,更新机制,上下文敏感的帮助,对菜单的一致操作,热键和工具栏,窗口管理以及其他许多excelle nt功能是免费的。

我和Swing合作过,并且比SWT更喜欢它,因为它有一个纯粹的组件模型(SWT您不必担心释放资源,因为您使用的是原生小部件),是真正的多平台(SWT在Windows上工作,MacOS和Linux,并且对于这三者都没有很好的优化),并且它更具可定制性。

您可能不会犯错尝试SWT甚至是JavaFX,但我很难找到切换到SWT的一个很好的理由,并且会尝试使用JavaFX来检查艺术状态,假设应用程序只是一个展示应用程序。

我撒了几个链接,但您可以轻松地搜索自己,找到的结果比你的兴趣。

0

自由NetBeans IDE有两个秋千和JavaFX的可视化布局工具。

-2

我建议不要使用布局工具;代码很难阅读和维护。

另外,如果你需要的对象的数据库访问,那么NetBeans将离开实体管理器打开,然后再创建主要头痛和错误,如果您的应用程序需要使用多个线程。

5

还有一些GUI框架不是用Java编写的,它可以满足您的需求。例如,GTK +是用C编写的,但是有语言绑定到Java。例如,请查看java-gnome

我不知道它有多好,但快速谷歌搜索也止跌回升Java bindings for Qt所以也许这也是值得探讨。

0

GWT也可以成为用于基于Java的应用程序的很好的UI工具。在GWT中完成的代码与Java代码相同。另一件事是GWT自己的句柄浏览器兼容性。它具有丰富的小部件工厂,国际化,安全性和更多功能。

1

我认为JavaFX是一个很好的选择,因为它具有良好的用户界面和Swing