Swing 今天还在使用吗? [关闭]

Posted

技术标签:

【中文标题】Swing 今天还在使用吗? [关闭]【英文标题】:Is Swing Still in Use Today? [closed] 【发布时间】:2014-08-18 00:33:55 【问题描述】:

Is Java Swing still in use?是我最近找到的帖子,已经4岁了(现在11岁了),所以……

Swing 是否在专业环境中使用?我是一名学生,想知道它是否值得学习,或者它的日子已经过去了。

(我不是在询问 Swing 与 AWT 的比较……只是在工作中 Swing 是否已过时。)

【问题讨论】:

是的,Swing 拥有大量追随者,拥有良好的业绩记录和广泛的第三方支持。未来是一件很难预测的事情,而且总是流利的。仍然有一些公司使用 AWT :P。值得学习吗。这将取决于你的职业选择,但是对 MVC 和观察者模式和生产消费者模式之类的东西有很好的理解可能会让你更有优势 在学习什么方面有很多意见,但问题很明显是在询问 Swing 是否被广泛使用。这是一个可以合理客观且有益地回答的问题。 好问题。可惜已经关门了。 “我们正在使用 Swing for X”类型的答案会非常有帮助。 这怎么可能是“主要基于意见的”。使用情况是一个可衡量的事实,可以用数字来支持。 我仍在 Swing 中维护非常大的应用程序。它简单、强大、快速且非常方便。我已经为自己创建了一些框架,最后我继续...... 【参考方案1】:

好吧,Intellij IDEA 的 UI 使用 Swing,所以我不会说它已经过时。诚然,我真的认为它可以进行大修(阅读:一些不完整的意大利面条代码)。

【讨论】:

Swing 不需要充满意大利面条式的代码。那就是应用程序设计。 Spring MVC,甚至 EJB 3.x 都可以充满意大利面条式的代码。我见过用秋千制作的漂亮项目,无论是在外面还是在里面。 JS 世界现在试图在他们的单页应用程序中实现的一切都是几十年前用 Swing 完成的。它是非常面向对象的,并且可以启动。【参考方案2】:

大多数现有的 GUI Java 代码库是 Swing,并且可能会一直保持这种状态,直到代码库腐烂并且没有人再维护它。

GUI Java 代码库的大部分使用JavaFX,这是Java8 中的Swing 替换,现在是standard java library 的一部分。它允许CSS 换肤、html5 元素,并且还有一个非常好的FXML(XML/HTML 方言),它允许非程序员“进入”并处理 GUI 布局等。它还有SceneBuilder,这是一个免费/标准的GUI drag-n-drop 构建器,它会为您的程序自动生成FXML

当我说 FXML 可以用 50 行 FXML 替换 Swing GUI 的 3,000 行 extended JFrame class 代码时,我不会开玩笑。 (我最近帮助迁移的项目)。

Swing 仍然被大量使用,并且将继续使用很长一段时间——毕竟,在很长一段时间内,它是 Java 的唯一选择。但是,JavaFX 令人耳目一新,非常值得学习。

顺便说一句——Swing 构建在 AWT 之上——AWT 有很多问题,其中大部分被 java 项目 (OpenJDK/Oracle) 标记为“不会修复”。 Swing 是为替换/修复 AWT 而构建的,但是有时您会将 AWT 对象结合到您的 Swing 应用程序中。哎呀,您有时会将 Swing 对象结合到您的 JavaFX 应用程序中。我不会费心学习 AWT,如果你学习 Swing,那么你大部分时间都在学习 AWT。 Swing 与 AWT 的最大区别在于 Swing 组件以字母 J 开头。例如:JFrameFrame 等。

【讨论】:

这个答案在 5 年后仍然有效吗? @Evorlor 是的。如果不是更是如此。 JavaFX 已经发展了很多,并且在很多公司的支持下被分拆成自己的项目。然而,应该注意的是,如今许多人可能更喜欢创建 Web 应用程序而不是桌面应用程序 - JavaFX 也可以提供帮助。【参考方案3】:

绝对是的。传统的 Swing 应用程序仍受支持和增强。没有其他选择。如果您正在制作像 IDE 之类的应用程序,SWING 仍然是首选。新应用程序当然会有网络界面,但这实际上取决于应用程序的性质。没有通用规则。

【讨论】:

我认为 Eclipse RCP (SWT) 甚至 Netbeans Platform (Swing) 将是一个更好的选择,可以单独使用 Swing 来制作 IDE。 @SnakeDoc 有什么可能的并发症? netbeans 和 eclipse 平台已经被证明是稳定的,很多应用程序都基于它们 @rpax 每个窗口工具包都有开发人员必须解决的问题。大多数人都会学得很好。

以上是关于Swing 今天还在使用吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Java Swing 还在使用吗? [关闭]

我们可以在 Java swing 中添加阴影效果吗? [关闭]

我想在 Java Swing 中制作一个 DJ 音乐混音软件(如 Virtual DJ),可以吗? [关闭]

获取应用关闭事件

Java swing拖放记事本[关闭]

中国SaaS还在等春天,这种新服务模式有发展前景吗?