JavaSE框架和体系结构?

JavaSE框架和体系结构?,java,swing,model-view-controller,griffon,Java,Swing,Model View Controller,Griffon,我试图创建一个具有用户友好界面的网络Java SE应用程序,我对GUI库(Swing、SWT、JavaFX)以及应用程序(MVC、PureMVC)的体系结构感到非常困惑,请给我一个建议,我将不胜感激 我听说过狮鹫,但没有好的文档,我无法开始 PS:我用谷歌搜索它,但没什么有趣的。Grails是一个用于创建web应用程序的框架,所以如果您试图创建Java SE(桌面)应用程序,您可以忘记Grails 但是,有一个名为Grails的桌面应用程序框架,它使用与Grails(Groovy)相同的语言,应

我试图创建一个具有用户友好界面的网络Java SE应用程序,我对GUI库(Swing、SWT、JavaFX)以及应用程序(MVC、PureMVC)体系结构感到非常困惑,请给我一个建议,我将不胜感激

我听说过狮鹫
,但没有好的文档,我无法开始


PS:我用谷歌搜索它,但没什么有趣的。

Grails是一个用于创建web应用程序的框架,所以如果您试图创建Java SE(桌面)应用程序,您可以忘记Grails


但是,有一个名为Grails的桌面应用程序框架,它使用与Grails(Groovy)相同的语言,应该比使用Swing或SWT更容易。

Grails它是服务器端框架,旨在构建web应用程序。所以,如果你正在制作桌面应用程序(事件n层应用程序,带有一些中央服务器),这里不好

无论如何,您可以在这里找到正式的Grails文档:(对我来说,它非常详细)


另外,如果您真的需要一个框架来为您的桌面应用程序构建一些服务器,我建议您从SpringFramework/SpringMVC开始。基于它可以很容易地创建RESTJSON/XML/SOAP/Protobuf/etc/etc服务器。顺便说一句,它的级别要低得多,您必须选择所有其他适合您需要的技术和库。就像选择JSON序列化程序、数据库映射程序等,这至少是三个问题,一个答案不可能涵盖所有方面

a) GUI库呢

关于您的需求的任何详细信息都很难说哪个更适合您,为什么更适合您。总之

Swing是纯Java的,可能有些慢,但在Java完全可用的地方运行(例如,不是android)

SWT是支持操作系统的,例如eclipse使用SWT。看起来操作系统似乎出现了,而且似乎要快得多。适用于Windows、Linux和Mac

JavaFX并不常用。据我所知,还需要再学一门语言。 我从未见过JavaFX应用程序

b) 架构和libs呢 MVC可能是一个非常好的概念。然而,关于MVC到底是什么,有很多不同的观点

pureMVC是一个支持MVC解释的库

c) 圣杯呢 关于这方面已经有了答案

当你指的是“网络应用”,即客户端服务器应用和浏览器前端时,有很多技术支持这一点

  • GWT
  • 卡萨船长(JSF)
  • 边门
  • 冰面(JSF) ... (我想你会在这个领域找到大约40种技术)
然而,在这种情况下,后端不再是JavaSE

答案并不简单(不,不存在“最佳”),您必须调查您的需求、技术含义,然后选择正确或更知名的技术

这是一项没有捷径的艰苦工作。任何其他方法都是赌博,你可能赢,但通常你输了 JavaFX已经死了,不要使用它。 SWT是毛茸茸的,级别很低-你不会使用它。
如果你不喜欢像金属一样的内置外观和感觉,Swing是一个不错的选择(你也可以用类似L&F的物质定制is)。

顺便说一句,每个Grails应用程序都是Spring MVC应用程序,所以你给Spring MVC的每一个+1都同样适用于Grails。

我说的是“应该比Swing或SWT更容易”,因为如果不是,整个项目毫无意义。我没有任何使用Griffon的个人经验,但如果我正在构建一个桌面应用程序,这将是我的第一个调用端口。很抱歉,我错误地将Grail替换为Griffon。我看过Griffon,但我发现它的主要语言是Groovy,在我的应用程序中,所有逻辑都已经用JAVA编写。Groovy可能是Griffon的主要语言,但它不是你唯一的选择,使用98%Java或Scala创建应用程序是可能的,我不确定Spring MVC在构建桌面应用程序的服务器端方面是否比Grails更好。仅使用Spring创建restful服务要容易得多,这里更灵活。此外,这里不需要90%的grails fatures。顺便说一句,这取决于你的经验。使用众所周知的解决方案总是更好的(我相信对于很多人来说,PHP对于restful服务器、spring或grails来说要好得多)我的应用程序只是一个没有服务器端的简单桌面应用程序,很抱歉,因为我的问题没有说得那么清楚,我还错误地用Grail代替了Griffon。好的,明白了。我听说狮鹫很好,我从来没有用过,所以,这里不能说任何客观的东西。我建议Swing(使用MVC的一种形式)。它是Java桌面开发人员使用的主要工具包,因此(忽略所有其他潜在好处),当您提出特定问题时,您可能会得到更多帮助。关于具体问题,这不是一个,所以投票结束。谢谢你的详细回答。我提出了“网络应用程序”,因为我的应用程序处理路由器和网络设备,并与SNMP、TELNET、HTTP等一起工作,所以它不是服务器端应用程序。我问了所有这些问题,因为我发现如果没有详细的体系结构来指导您,那么很难处理应用程序中的许多类。