【问题标题】:Essentials Java GUI building blocks? I.e. libraries to form a framework on top of SwingEssentials Java GUI 构建块? IE。在 Swing 之上形成框架的库
【发布时间】:2025-12-10 15:45:01
【问题描述】:

Swing 为任何 GUI 应用程序提供了基本的构建块,但是构建 GUI 应用程序的更高层次呢?

我不是在问许多任意库,它们在各种视觉组件上提供了更多奇妙的变体。

我说的是每个人在创建除琐碎的 GUI 应用程序之外的任何东西时最终自己构建的缺失部分。

即应用程序特定逻辑构建的框架。

例如处理数据绑定、应用程序生命周期问题或支持常见的事情,如构建表单。

如果我们谈论持久性,您可以说任何人都可以使用 javax.sql 或 java.io 类编写自己的持久性层 - 但是大多数人更愿意使用 Hibernate 之类的东西。

所以,正如有人询问持久性库可能不是在寻找 ObjectOutputStream 的变体一样,我也不是在寻找某个 JComponent 子类或其他的变体。

我认为这是一个公平的 * 问题,因为与持久性等领域不同,使用 Google 不容易确定答案的明确共识。

也许人们可以回答一下 Swing 没有立即解决哪些 GUI 问题以及他们认为最能填补这些空白的库,而不是一堆随机库?

上周我问了一个与此类似的question 并且它已关闭 - 我试图用这样的措辞来表达它不会也被关闭。如果您想关闭它,也许您可​​以考虑将其改为社区 wiki?

【问题讨论】:

  • 我不能投票决定是否关闭,但我同意这是一个有趣且有价值的问题,无论它应该属于哪里。

标签: java swing frameworks


【解决方案1】:

JGoodies Bindings 非常适合如果您想拥有一个架构良好的程序。

NetBeans 平台 (RCP) 我真的很想尝试。它确实是唯一可行的 Swing 框架,因为 ...

Swing 应用程序框架非常缺乏,不再积极开发。

MiGLayout 是我最喜欢的布局管理器,用于我曾经使用 GridBagLayout(很久以前)和 JGoodies 表单布局的情况。另外,我不喜欢 GroupLayout。

【讨论】:

    【解决方案2】:

    以下是一些基本库:

    JGoodies - http://www.jgoodies.com/。这提供了一些不错的布局工具(FormLayout)以及常用的构建器和数据绑定工具

    SwingLabs - http://www.swinglabs.org/。这提供了许多您可能需要使用的常用组件,这些组件不是标准摇摆的一部分。

    Swing 应用程序框架 - https://appframework.dev.java.net/(jluzwick 已经提到)

    Groovy SwingBuilder - http://groovy.codehaus.org/Swing+Builder。这通过使用用于构建 GUI 的逻辑、分层脚本语言来更容易地构建 GUI。它还具有对某些数据绑定的原生支持。

    【讨论】:

    【解决方案3】:

    看看 NetBeans 平台(基于 Swing 的 RCP)

    【讨论】:

      【解决方案4】:

      你能指的是这样的东西吗?

      https://appframework.dev.java.net/

      它曾一度与 Netbeans 集成,我认为开发不会继续,但这个框架极大地帮助我用 java 创建了一个更复杂的应用程序。

      编辑:

      这些项目似乎是我提到的正在积极开发的前者的派生项目:

      http://kenai.com/projects/bsaf/pages/Home

      http://kenai.com/projects/guts/pages/Home

      【讨论】:

      • 即使这个答案获得了最多的选票,我也会接受杰夫的答案。我知道 Swing 应用程序框架(不幸的事实是,很多与 JDK7 相关的东西现在都已经垂死了)。不管它目前的状态如何,我总是从中得到 java.logging 的感觉,即有人怀疑它不一定是非 JCP 祝福项目中已经可用的东西的一个进步(尽管消除了对标准类库之外的东西的依赖)本身总是一个巨大的胜利,值得付出一些代价)。
      • 不用担心。他的回答有更多的内容和选择,所以我理解你为什么选择他的:)