需要现代Java桌面应用程序概述

时间:2010-02-09 19:39:38

标签: java desktop

我被要求用Java编写一个跨平台的桌面应用程序。目标平台是Windows / OSX / Linux。

我学习了Java 1.1 1997,并使用AWT库做了一些小实用程序和applet。从那以后我什么都没做。

我应该为这个项目使用哪些现代技术和库?我只是在找一个列表,所以我可以跟进谷歌。那里有很多java东西,局外人很难理解这一切。

另外,您有关于分发,安装和自动更新的任何广泛提示吗?

为了让您了解我的背景,我自1988年以来一直在编写复杂的桌面应用程序,包括C,C ++,Visual Basic,Delphi和C#。你给我的任何提示都会帮助我在这个项目上有一个好的开始。

非常感谢你的帮助。

编辑:如果有所不同,我会做很多自定义控件。

9 个答案:

答案 0 :(得分:4)

我会从SwingSWT开始,因为您需要做出的第一个决定是选择其中一个,以后切换可能是不可行的。

有许多其他通用库可能有用,例如GuavaApache Commons Collections,但这些可以混合和匹配,以便决策不是那么重要。

答案 1 :(得分:4)

基本决定:Swing vs. SWT vs。 JavaFX (我会选择这个,可能与Swing合并)。

至于“软”其他方面(除了已经提到的内容):

答案 2 :(得分:2)

Java已经改变了几种重要的(影响设计的)方式,你应该确保你知道自1997年以来引入的新语言特性,例如泛型。

对Java语言的大多数更改/添加都应该让人感到熟悉,因为C#具有许多相同的功能。

如果您发现自己渴望使用C#lambda,请查看LambdaJ

除了最重要的事情已被提及,所以我会对他们发表个人意见:

  1. 我会说使用 Swing 结束 SWT

  2. 我建议你看看 Eclipse 和      Netbeans ,了解哪种环境更舒适     发展中。但我认为你可以     找到更多的相似之处     Visual Studio C#和 Netbeans 比     在VSC#和Eclipse之间

  3. 如果你     需要高级GUI组件检查     首先是SwingX。
  4. 此外,除了Stack Overflow之外,一个很好的资源是Java2sJava2s - Swing

答案 3 :(得分:1)

SWT是您可以使用的库。和IDE for IDE。

答案 4 :(得分:1)

Swing已经是一项很好的技术了。但是在开始时理解基本概念有点问题。

您可以阅读Swing Architecture,这将让您非常了解幕后发生的事情。

必须阅读swing tutorial

最后,一旦你对框架有了很好的理解,你就能够解决这本书:

http://filthyrichclients.org/images/book.png

从描述页面:

  

肮脏的富客户端是图形丰富的应用程序,它们很酷。他们从一开始就吸引用户,并以兴奋的死亡抓住他们。他们让用户告诉他们的朋友应用程序。

     

简而言之,它们使用户真正享受他们的应用体验。您最后一次使用软件应用程序的时间是什么时候?

大多数Swing应用程序存在的问题是,它们保持在最低限度,并且不会为它们的界面添加视觉效果,使其无聊使用。

这本书有许多主题,你可以学习如何改善你的摇摆应用程序的外观。

有一个NetBeans plugin of the demos

例如this article描述了如何应用其中一些概念并创建一个繁忙的窗格,如下所示:

alt text http://www.javalobby.org/images/postings/geertjan/pics/glasspane-painting-jl2.png

答案 5 :(得分:0)

除了Swing,SWT和NetBeans平台之外,还有其他几个词你应该google:)

  1. JIDE(组件)
  2. SwingX(组件)
  3. 物质(看起来感觉)
  4. FEST(自动摇摆测试框架)
  5. JXLayer(装饰组件)

答案 6 :(得分:0)

  

另外,你有什么广泛的提示吗?   配送,安装和   自动更新?

Java Web Start是一个很好的解决方案。

答案 7 :(得分:0)

我强烈建议您查看Griffon。它是一个基于Java Swing的库,它将插件模型和约定从Grails带到Swing世界。它确实意味着您将使用Groovy进行编码,而不是Java,但这应该不是问题。

对于新的应用程序,这将是一个不错的选择。 Groovy和Griffon在Java虚拟机上运行,​​可以跨平台部署。

答案 8 :(得分:0)

Spring Rich Client project是一个完整的基于Swing的框架,用于创建基于Spring的桌面应用程序,类似于Eclipse和NetBeans。我使用它是因为它大大减少了所需的样板代码量。