【问题标题】:IDE for Swing applications development [closed]用于 Swing 应用程序开发的 IDE [关闭]
【发布时间】:2022-04-06 18:31:45
【问题描述】:

是否有任何 IDE 可以简化创建 Swing 应用程序(理想情况下类似于 Visual Studio)

【问题讨论】:

  • @Thorbjørn Ravn Andersen news only 所有关于 Netbeans 和基于 JSR296 的框架的答案都已过时,因为这个 Swing 框架被 Oracle 拒绝,后来在 Netbeans 平台中被贬值
  • @mKorbel SAF 已弃用,Swing 未弃用。
  • @Thorbjørn Ravn Andersen 对不起?何时,何地,......我谈到了 Swing :-),只谈到了 Swing FrameworkFramework based on JSR296
  • @mKorbel Netbeans 编辑器与“普通 Swing”应用程序配合得很好。
  • @Will - 如果这个问题被关闭,赏金会发生什么?

标签: java swing ide


【解决方案1】:

就像其他人提到的那样,NetBeans 的可视化编辑器非常好,但它很大程度上基于 Swing Application Framework,因此您需要了解它的工作原理才能正确使用它(尽管您不知道需要深入研究以进行测试)。

除此之外还有:

我个人使用过 NetBeans 和 IDEA 的可视化编辑器。两者都很好,但我认为 NetBeans 有优势,因为它不使用任何专有的方式来保存 GUI 结构,而是执行类似于 Visual Studio 所做的事情 - 自动生成您可以添加的代码。 IDEA 将信息存储在一个单独的文件中,这意味着您以后必须使用 IDEA 来直观地编辑布局。

我没有使用过 Eclipse 的可视化编辑器。

我投票支持 NetBeans 的可视化编辑器。我认为它满足了大多数人在可视化编辑器中寻找的东西,并使其足够灵活,可以通过代码手动堵塞漏洞而不影响可视化编辑器(因此您可以在代码和设计视图之间来回切换而不会破坏任何一个)。

【讨论】:

  • 这不是真的。 Netbeans 的可视化编辑器根本不是基于 Swing 应用程序框架,除非您在一开始就选择使用该框架。 Matisse 过去确实对 GroupLayout 有额外的依赖,但现在它包含在 jre 中,因此不再依赖 SAF。
  • 这种依赖的一个例子是存储用于显示的字符串文字(如标签文本)。这些存储在由 SAF 自动管理(加载、结构)的属性文件中。它全部内置在最新的 JRE 中,因此您不需要额外的 jar,但您确实需要了解 SAF 的架构才能有效地使用它。
  • 是的,这不是真的。它根本不依赖于 Swing 应用程序框架。您不必对新加坡武装部队有任何了解。我在 NetBeans 上的 Swing 中完成了多个项目,但我对 SAF 一无所知。
  • 根据我的经验,我上面的评论适用于 2008 年。但那是 2 多年前的事了,从那以后我还没有真正大量使用过 Netbeans,所以我不知道最新版本发生了什么变化.
【解决方案2】:

我喜欢NetBeans IDE 中的Swing GUI Builder

【讨论】:

    【解决方案3】:

    对我来说,最好的可视化 Swing 编辑器是 JFormDesigner,您可以单独运行它,也可以作为 IntelliJ IDEA 和 Eclipse 的插件运行。

    它生成正确的(实际上可读的)源代码,它非常符合人体工程学和直观,最重要的是,非常可扩展。最后一点非常重要,因为如果你想构建一个像样的 Swing 应用程序,你必须扩展基础组件或使用一些第三方库,并且必须很容易将它们集成到可视化编辑器。

    它不是免费的,但对于您获得的电力而言,它是物美价廉的(129 欧元/159 美元)。我已经用了几年了,很喜欢。

    【讨论】:

    • +1。 JFormDesinger 是我见过的最精致的 GUI Builder。您只需要尝试一下,看看它是如何工作的 - 没有任何屏幕截图可以显示它的工作原理。
    • 我已经与 JFD 合作了很长一段时间,我可以肯定地说,它比我知道的其他选择遥遥领先。
    【解决方案4】:

    有两个你可以使用(我都用过,它们都非常强大,而且易于使用):

    或者你可以使用:

    就我个人而言,我更喜欢带有Windowbuilder 的Eclipse,但这只是我自己。你可以使用任何一个。


    这是Windowbuilder插件的图片:



    还有一张NetBeans'内置GUI Builder的图片:

    【讨论】:

      【解决方案5】:

      Netbeans 具有一些 GUI 构建支持,它是市场上最流行的 Java IDE 之一。看看吧。

      【讨论】:

        【解决方案6】:

        试试Instantiations'Windows Builder Pro。它包括Swing Designer,它是一个 Swing UI 构建器。它基于 Eclipse。

        【讨论】:

        • 现在是Google's Web Toolkit的一部分
        • 我认为这是更好的选择。它有很多细节,如果你开始手工编码(你会的)它提供了很大的灵活性。此外,它生成的代码易于阅读。它处理国际化方案和动态调用而不会中断。我也喜欢缺乏元数据。它只是将一小段信息放入您的 Javadoc 中,将其标记为入口点。
        【解决方案7】:

        Abeille 非常好,基于 JGoodies FormLayout。与几乎所有其他 Java GUI 构建器不同,Abeille 默认不生成代码。在我使用它的项目中,避免阅读或滚动布局代码(因为该代码不再存在)真是太好了。我们的大部分手写代码都关注将事件与动作联系起来,只是询问相关控件的布局。

        代码生成是 Java 中布局代码的默认方式是一种犯罪,因为更好的 GUI 方式已经存在了几十年。我使用了 NetBeans GUI 代码生成器 Matisse。虽然 Matisse(现在称为“Swing GUI Builder”)使布局组件变得愉快,但它与所有其他代码生成工具相似,因为当您使用 Matisse 时,您必须不断担心其他人编辑了“您无法在其中编辑它” NetBeans”在 NetBeans 之外的 GUI 部分。一旦您再次触摸布局构建器,它可能会破坏他们的工作,然后您的 GUI 就会损坏。可能会有一些简单的任务,例如重新排序变量初始化及其使用或重新命名变量(这在使用 Matisse 的数据库功能时尤其成问题)。您知道如何通过编辑不可编辑的源代码来做到这一点,但可能会浪费时间试图弄清楚如何在 GUI 构建器中做同样的事情。像大多数代码生成工具一样,它可能会帮助您入门,但最终您必须自己维护生成的代码。

        【讨论】:

        • 布局即代码是唯一允许您在完成后与正在使用的特定设计器分离的方法。换句话说,没有供应商锁定。
        【解决方案8】:

        WindowBuilder Pro 用于 Eclipse

        • 免费!
        • 它适用于现有代码并且不会将您锁定(与 NetBeans 不同)
        • 它适用于 MiGLayout
        • 不过,它确实有一些您的视图类必须遵循的约定。

        在 Eclipse v4.2 (Juno) 中安装:

        1. 转到 - 菜单 帮助安装新软件...
        2. 选择 - 使用:Juno - http://download.eclipse.org/releases/juno
        3. WindowBuilder 项目位于“通用工具”下(或使用过滤器)。

        http://www.eclipse.org/windowbuilder/download.php 提供旧版本和 zip。

        【讨论】:

          【解决方案9】:

          最新版本的 NetBeans 包括一个非常漂亮且简单的 Swing 可视化编辑器,名为 Matisse

          Matisse

          【讨论】:

            【解决方案10】:

            我对 NetBeans 有很好的体验。如果您了解这些应用程序的每个小部分,那就太容易了。

            最复杂的部分是使用,例如布局(如果你不能处理复杂的部分),但一切几乎都是即插即用的。

            此外,您可以将JFrame 放入其他框架中,而无需为此创建另一个框架类。我认为那会很好。

            【讨论】:

              【解决方案11】:

              坦率地说,我从来没有见过一个编辑器能比我在文本编辑器中手动完成的更接近。如果您只有非常简单的需求,例如在窗口中放置几个​​按钮,那么所有可视化编辑器都很好。当事情变得更加复杂时,视觉编辑器很快就会失去竞争优势。

              我通常使用一堆由更基本的小部件构建的高级类,并以此连接我的 UI。这也让我可以使用自动化的 JUnit 测试轻松地测试我的 UI(因为我可以控制源代码的外观)。

              最后,UI 的更改不会在版本控制系统中产生不必要的噪音。

              【讨论】:

                【解决方案12】:

                我推荐适用于 Eclipse IDE 3.7.2 Indigo / 2012 年 2 月 24 日的 WindowBuilder 插件。

                这里是分步安装:Create Java GUI as Easy as Visual Basic

                【讨论】:

                  【解决方案13】:

                  NetBeans 是最简单易用的 (http://netbeans.org/)。但是,它不允许您编辑(微调)生成的代码。

                  JDeveloper (http://www.oracle.com/technetwork/developer-tools/jdev/overview/index.html) 是另一种解决方案,它允许您编辑代码……但我觉得 NetBeans 更直观。

                  【讨论】:

                  • 我一直觉得JDeveloper生成的代码比较好理解。
                  【解决方案14】:

                  根据我的经验,Eclipse 可视化编辑器相当乏味。 JBuilder 让我更加幸运,它也基于 Eclipse,只需像许多其他商业产品一样添加一些插件。它仍然无法解析任何 Swing 代码(我怀疑任何 Swing WISIWYG 编辑器都可以),但如果你从它开始,它会给你相对无缝的体验。 不过,您需要为此付费。

                  最后,我使用过不同的类似 UI 工具,Flash Builder,Delphi 等,但除非你做一些相对琐碎的 UI 设计,不包括太多的业务逻辑和与其他层的通信,否则你会必须接受,一旦你学会正确地做代码,你就能在代码中创建的东西比任何编辑器都能提供给你的东西要强大得多。

                  【讨论】:

                  • Eclipse 可视化编辑器项目也相当不活跃。它此时已存档,并且在 3.4 之后的任何版本中使用都非常令人沮丧。 WindowBuilderPro 确实是 Eclipse 的可行(免费)替代方案。
                  【解决方案15】:

                  我已经在几个 IDE 之间切换,我认为在使用和性能方面具有最佳 GUI 构建器的一个必须是 NetBeans。

                  【讨论】:

                    【解决方案16】:

                    我已经尝试了一些,我发现最接近 Visual Studio 的是 NetBeans。 6.5 版非常出色,并且确实比 5 版​​有所改进。

                    【讨论】:

                      【解决方案17】:

                      我是 JetBrains 的忠实粉丝,谈到 Java,IntelliJ 是我用过的最好的 IDE。

                      对于 Swing,他们有一个完全交互式的 UI 构建器。而且,对于实际的编码,他们的智能感知是无与伦比的。

                      【讨论】:

                        【解决方案18】:

                        JFormDesigner.

                        我过去广泛使用 NetBeans 进行 GUI 设计,但现在我将 IntelliJ 与 JFormDesigner 插件一起使用。我尝试了其他几种解决方案,这是我坚持的一种。

                        JFormDesigner 也适用于 JBuilder 和 Eclipse,因此您不会将项目锁定到一个特定的 IDE。

                        【讨论】:

                          【解决方案19】:

                          当然,您应该使用 NetBeans 来构建 Java Swing GUI。拖放功能和自动代码生成非常成熟。

                          对于 Eclipse,我不确定。但是因为 IBM 有自己的 GUI SWT 包,我不确定它是否支持 Swing。

                          【讨论】:

                            【解决方案20】:

                            我曾经相当多地使用 MyEclipse。它有一个不错的 IDE 用于制作 Swing 表单等。我认为它在过去一年中有所改进 - 他们似乎经常在 gobs 和 heaps 中添加功能。

                            http://www.myeclipseide.com/

                            【讨论】:

                            • 那是已经移植的netbeans。
                            【解决方案21】:

                            使用 NetBeans,我还成功开发了一个使用 NetBeans 的应用程序。 它真的很棒,它可以在编写代码时帮助您。
                            由于 Swing 会自行生成一些代码,因此使用 Netbeans 非常有帮助。
                            通过它,您可以随时提出问题和问题。
                            如果你去最新版本的版本会很好。

                            【讨论】:

                              【解决方案22】:

                              我一直手动编写我的 UI。与屏幕构建器打交道并填写所有这些属性表的挫败感对我来说太多了。经过几个屏幕和一些研究后,我的工作效率也一样。

                              【讨论】:

                                【解决方案23】:

                                在使用 Eclipse 时,我使用 Visual Editor 插件。它生成干净的源代码,具有良好的模式并且易于修补/修改/扩展。 不幸的是,它不是很稳定。但值得一试。

                                【讨论】:

                                  【解决方案24】:

                                  我喜欢 Eclipse 的 VisualEditor (VE),前段时间我尝试切换到 另一个编辑,但我发现这是不可能的。可视化编辑器有这个 它生成可管理、可读、可编辑和易于理解的代码的功能。

                                  与前面提到的 NetBeans 编辑器和 WindowBuilder 不同,它使用惰性初始化模式来分离组件的初始化。此外,它不需要锁定您无法编辑的部分代码;您可以手动编辑代码,VE 仍然可以处理您的更改。

                                  VE 唯一的缺点是它使用Eclipse v3.2 (Callisto)(Eclipse v3.4 (Ganymede) 或 Eclipse v3.3 (Europa) 没有官方构建),所以实际上你必须使用两个 Eclipses 实例,一个用于 VE,一个用于其余的开发。

                                  我从最近关于 comp.lang.java.gui 的讨论中得到它(我是这篇文章的作者,所以我可以正确地做到这一点)。 Here 是整个讨论的链接。

                                  【讨论】:

                                    【解决方案25】:

                                    在过去的近 10 年里,我们一直在进行 Swing 开发。有一些不错的 GUI 构建器可用(例如 JFormDesigner),但都限制了我们太多在不同的种类。

                                    例如,我们有很多没有公共无参数构造函数的组件(例如,需要在构造函数中包含模型的 JTable 子类)或者我们有组件工厂。

                                    桌面应用程序通常必须经过混淆处理。混淆很容易破坏使用 GUI 设计器创建的用户界面,或者需要大量工作才能避免混淆此类类。

                                    另一个经常发生的情况是,例如,面板应该只包含某些组件,具体取决于某些条件。简单地隐藏它们会使 GUI 看起来很糟糕;他们宁愿不应该被添加。我从来没有找到一个提供这种灵活性的 GUI 编辑器,即使有,它也很难使用,我肯定会用好的旧 Java 代码更快。

                                    【讨论】:

                                    • 我不能再同意这个观点了。你必须学会​​使用这些工具,然后才能说它们没用,最好是手工做。没办法。
                                    【解决方案26】:

                                    我认为最好的编辑器是 Eclipse 的可视化编辑器。

                                    唯一的缺点是我们在修改源代码时无法重新编辑可视化部分。我希望有一天我们能有一款在这方面与 Visual Studio 相媲美的工具。

                                    【讨论】:

                                      【解决方案27】:

                                      除了用于 Swing 的 NetBeans 之外,我没有使用任何其他工具,但我对它非常满意。我在一个价值 2500 万美元的应用程序上使用了 18 个月,并开发了一个原型应用程序来替换 Windows 窗体应用程序。

                                      直到微软推出 WPF,在我看来,对于传统桌面应用程序来说,没有比这更好的工具包了。 (我总是觉得 Windows 窗体太局限了)。

                                      【讨论】:

                                        【解决方案28】:

                                        我个人会建议 NetBeans Swing Builder。然而,如果您想要完全控制并深入了解 Swing 框架,我注意到徒手操作是最终选择。

                                        【讨论】:

                                          【解决方案29】:

                                          window builder pro 是不错的选择,而且它也是免费的。

                                          【讨论】:

                                          • 链接(实际上)已损坏。你能提供一个新的(通过编辑你的答案)吗?
                                          【解决方案30】:

                                          正如其他人所提到的,我对 Java SWING 应用程序的最佳体验是使用 NetBeans。 NetBeans 有一个所见即所得的编辑器,代码会自动为您生成,然后受到保护,但是您可以添加自定义代码来添加最终用户可能有兴趣使用的侦听器和其他事件,例如按钮、文本表单和区域,以及其他不错的 GUI 工具。

                                          【讨论】:

                                            猜你喜欢
                                            • 2017-06-18
                                            • 1970-01-01
                                            • 1970-01-01
                                            • 2010-10-03
                                            • 2018-08-26
                                            • 2013-04-30
                                            • 2010-09-23
                                            • 1970-01-01
                                            • 1970-01-01
                                            相关资源
                                            最近更新 更多