Swing应用程序在哪里使用?

17

Swing应用程序现在还有使用吗?我找不到它们被使用的地方。跳过AWT和Swing包是否可以(尽管我学习了一些基础知识)?

Swing应用程序仍然在某些领域得到广泛使用,例如桌面应用程序和企业级应用程序。如果您已经掌握了AWT和Swing的基础知识,那么跳过它们可能是可以的,但这取决于您将要开发的应用程序类型。

相关链接:https://dev59.com/GnA75IYBdhLWcg3w_ej1#2994324 - Betamoo
16个回答

25

如果你只是写网络应用程序,那么你可能可以跳过Swing,但如果你写其他类型的Java应用程序,你绝对会遇到它。我从来没有在一个非微不足道的Java应用程序中没有使用Swing GUI。

同时,Swing是其中一个更好的API。如果你使用其他大多数API,你会发现它们更难使用和/或平台不兼容。(如果有任何读者了解此方面的例外情况,请留下评论,我还没有寻找过,但有点好奇是否有什么更好的选择)

其他JVM语言如JRuby和Jython通常被用于访问Swing。


11

虽然我不怀疑Swing在今天仍有其存在的价值(同时也是一个丑陋而复杂的野兽,需要花费很大的精力才能开始使用),但最后一次出现的问题是在2005年 - 所以它并不能真正证明Swing在今天被使用 ;) - Henning
LandlordMax(http://www.LandlordMax.com)是一款基于Swing的桌面应用程序。我可以向您保证,Swing社区非常活跃!顺便说一下:它曾经在Swing Sightings上亮相过多年。 - Stephane Grenier

7

Swing在业务特定(垂直)/内部应用程序开发中被广泛使用。


6

Swing应用程序通常用于Java桌面应用程序的大多数情况下。有时候您甚至不知道——例如,LimeWire就是一个Java Swing应用程序。

学习Swing时,您会发现您将了解仍然很重要的AWT部分,例如事件(Event)、布局管理器(LayoutManager)、图形(Graphics)、字体(Font)、颜色(Color)等。


Azureus是用Swing开发的吗?哇..谢谢你的信息,伙计 :) - arshad
1
我相信Azureus使用的是SWT工具包(来自Eclipse),而不是Swing。 - Peter Štibraný
是的,Azureus是一个Eclipse RCP,也就是它使用SWT。 - JesperE
我倾向于同意。当Swing应用程序做得好时,您甚至不会意识到自己正在运行它们。除非您真的仔细看,否则无法判断我们的应用程序(http://www.landlordmax.com)是否是Swing应用程序。 - Stephane Grenier
不,Azureus/Vuze不是基于Eclipse RCP,而是基于SWT。 - Mot

6

那么……NetBeans怎么样?你知道,它是一个IDE,使用Swing。


7
虽然Eclipse是一款很棒的IDE,但它不使用Swing,而是SWT。 - Peter Štibraný

4

对于桌面Java应用程序,你应该使用Swing进行编写,只有在Swing需要时才使用AWT。

我相信除了SQL Squirrel和IntelliJ之外,人们还可以想出其他非常好的Swing应用程序示例。

我认为RIA技术(如Flex、Silverlight等)正在崛起,因为网络和服务正在从桌面上占据主导地位。不仅仅是Swing正在失去优势。


当然可以,也许不行,但至少有 SWT 可供选择(我没有学过)。 - PhiLho
1
我不认为SWT是一个可行的替代方案,但这是我的个人选择。 - duffymo

4

每当您想要为非Windows操作系统编写桌面GUI应用程序时,您可以使用Swing作为唯一明智且可靠的跨平台GUI框架。

此外,Swing有非常好的设计。我建议您无论如何都要学习它,以使自己成为更好的程序员。


3

请查看《华丽客户端》,该书解释了AWT和Swing的部分历史。Swing是大多数AWT类的轻量级替代品(继承者)。


2
跳过AWT和Swing?去哪里? SWT?基于Web的开发?
在更广义上,我有许多Java应用程序,尽管我不太确定它们是否使用Swing或SWT。
许多数据库工具(如SQuirreL SQL Client)都是用Java编写的。 我认为SQuirrel使用来自Netbean的东西,当然是基于Swing的。
yEd是用Java编写的,可能是Swing。
许多P2P软件都是用Java编写的,包括Frostwire(我在那里看不到SWT的痕迹,但我可能会错过它)。
这个列表远远不是详尽无遗的!
哈哈!我忘了提到我工作的公司制作的软件套件!它非常专业,由移动电话公司用于监控其网络节点的健康状况(表面上看起来像电子表格)。完全基于Swing。

1
Open Office并不是用Java编写的(它之所以慢,是因为其他原因;))。 - Dan Dyer
啊?有人已经告诉我了,但在发布之前,我检查了一下,并发现很多JAR文件(在program/classes中)。它确实也有很多DLL和exe文件。至少让人感到困惑。 - PhiLho
OpenOffice是用C++编写的,以某种方式支持Java插件。 - Rastislav Komara

2
我记得jEdit也是一个Swing应用程序,是一款相当受欢迎的文本编辑器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接