我被要求用Java编写一个跨平台的桌面应用程序。目标平台是Windows / OSX / Linux。
我学习了Java 1.1 1997,并使用AWT库做了一些小实用程序和applet。从那以后我什么都没做。
我应该为这个项目使用哪些现代技术和库?我只是在找一个列表,所以我可以跟进谷歌。那里有很多java东西,局外人很难理解这一切。
另外,您有关于分发,安装和自动更新的任何广泛提示吗?
为了让您了解我的背景,我自1988年以来一直在编写复杂的桌面应用程序,包括C,C ++,Visual Basic,Delphi和C#。你给我的任何提示都会帮助我在这个项目上有一个好的开始。
非常感谢你的帮助。
编辑:如果有所不同,我会做很多自定义控件。
答案 0 :(得分:4)
我会从Swing和SWT开始,因为您需要做出的第一个决定是选择其中一个,以后切换可能是不可行的。
有许多其他通用库可能有用,例如Guava和Apache Commons Collections,但这些可以混合和匹配,以便决策不是那么重要。
答案 1 :(得分:4)
基本决定:Swing vs. SWT vs。 JavaFX (我会选择这个,可能与Swing合并)。
至于“软”其他方面(除了已经提到的内容):
答案 2 :(得分:2)
Java已经改变了几种重要的(影响设计的)方式,你应该确保你知道自1997年以来引入的新语言特性,例如泛型。
对Java语言的大多数更改/添加都应该让人感到熟悉,因为C#具有许多相同的功能。
如果您发现自己渴望使用C#lambda,请查看LambdaJ
除了最重要的事情已被提及,所以我会对他们发表个人意见:
我会说使用 Swing 结束 SWT
我建议你看看 Eclipse 和 Netbeans ,了解哪种环境更舒适 发展中。但我认为你可以 找到更多的相似之处 Visual Studio C#和 Netbeans 比 在VSC#和Eclipse之间
此外,除了Stack Overflow之外,一个很好的资源是Java2s,Java2s - 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:)
答案 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。我使用它是因为它大大减少了所需的样板代码量。