Java 摆动发电机

Java 摆动发电机,java,user-interface,swing,gui-designer,gui-builder,Java,User Interface,Swing,Gui Designer,Gui Builder,我需要使用swing开发一些JavaGUI。 几年前,我确实在swing方面有所发展。 但你看,这相当让人筋疲力尽,因为当时没有多少工具可以帮助你 但我相信今天应该更容易,必须有工具。 我想使用某种生成器,或者实用工具,甚至框架。 我知道Eclipse有一些插件,而Netbeans有一个很好的内置工具。我也听说了关于Jide框架的好东西 但我还是不太了解他们 是否有一个工具/实用程序/生成器/框架是您使用过并真正帮助过您的 显然,我更喜欢免费的东西,但如果你知道一些真正好的东西,而且需要花钱,那

我需要使用swing开发一些JavaGUI。
几年前,我确实在swing方面有所发展。
但你看,这相当让人筋疲力尽,因为当时没有多少工具可以帮助你

但我相信今天应该更容易,必须有工具。
我想使用某种生成器,或者实用工具,甚至框架。
我知道Eclipse有一些插件,而Netbeans有一个很好的内置工具。我也听说了关于Jide框架的好东西

但我还是不太了解他们

是否有一个工具/实用程序/生成器/框架是您使用过并真正帮助过您的

显然,我更喜欢免费的东西,但如果你知道一些真正好的东西,而且需要花钱,那也行


谢谢。

多年来,我一直在使用内置于“Matisse”表单编辑器的NetBeans。它的优点是内置在IDE中,因此表单编辑和代码生成相当无缝。如果您是Swing新手,它将是一个巨大的推动(只要您继续使用NetBeans作为您的IDE)

然而,也存在一些问题:

  • 您无法轻松地将表单移动到另一个IDE。生成的代码可以工作,但表单数据本身存储在一个XML文件中
  • 如果两个以上的人同时编辑一个表单,SVN/CVS中可能会出现几乎无法协调的冲突。XML实际上不是人类可读的
  • 在过去,我发现表单XML文件本身已损坏,这将导致表单生成错误
  • 表单编辑器有时会有自己的想法,当您执行诸如调整控件大小这样简单的操作时,会破坏您的安排

  • 尽管有上述种种,我还是继续使用它,因为似乎没有其他东西对我有吸引力。

    好几年来,我一直使用“Matisse”表单编辑器中内置的NetBeans。它的优点是内置在IDE中,因此表单编辑和代码生成相当无缝。如果您是Swing新手,它将是一个巨大的推动(只要您继续使用NetBeans作为您的IDE)

    然而,也存在一些问题:

  • 您无法轻松地将表单移动到另一个IDE。生成的代码可以工作,但表单数据本身存储在一个XML文件中
  • 如果两个以上的人同时编辑一个表单,SVN/CVS中可能会出现几乎无法协调的冲突。XML实际上不是人类可读的
  • 在过去,我发现表单XML文件本身已损坏,这将导致表单生成错误
  • 表单编辑器有时会有自己的想法,当您执行诸如调整控件大小这样简单的操作时,会破坏您的安排

  • 尽管如此,我还是继续使用它,因为没有其他东西对我有吸引力。

    事实上,到目前为止,我发现编写Swing框架的更快方法是使用它,但您必须在项目中包含groovy的jar才能使用它。这是他们网站上的一个例子,主要是Synctractic sugar,但它有助于:

    def frame = swing.frame(title:'Frame', defaultCloseOperation:JFrame.EXIT_ON_CLOSE, pack:true, show:true) {
        vbox {
            textlabel = label("Click the button!")
            button(
                text:'Click Me',
                actionPerformed: {
                    count++
                    textlabel.text = "Clicked ${count} time(s)."
                    println "Clicked!"
                }
            )
            widget(sharedPanel())
            widget(sharedPanel())
       }
    }
    

    除此之外,还有一些解决问题的“可视化”方法,但它们不允许您如此快速地与您编写的界面集成(例如),NetBeans和Eclipse有一些插件来完成这些肮脏的工作,但与以前一样:您不能集成得如此之深。

    实际上,我发现目前为止编写Swing框架的更快方法是使用它,但您必须在项目中包含groovy的jar才能使用它。这是他们网站上的一个例子,主要是Synctractic sugar,但它有助于:

    def frame = swing.frame(title:'Frame', defaultCloseOperation:JFrame.EXIT_ON_CLOSE, pack:true, show:true) {
        vbox {
            textlabel = label("Click the button!")
            button(
                text:'Click Me',
                actionPerformed: {
                    count++
                    textlabel.text = "Clicked ${count} time(s)."
                    println "Clicked!"
                }
            )
            widget(sharedPanel())
            widget(sharedPanel())
       }
    }
    

    除此之外,还有一些“可视化”的方法来解决这个问题,但它们不允许您与您编写的界面进行如此快速的集成(例如,NetBeans和Eclipse有一些插件来完成繁重的工作,但与以前一样:您无法集成得如此之完美。

    就GUI构建器、NetBeans和IDEA而言(现在9.0测试版将开源)两者都有免费的GUI构建器


    GUI构建者有Jason提到的各种缺点。如果你想很好地控制正在发生的事情,但仍然想通过手工编写一个复杂的GUI,那就去看看。

    就GUI构建器而言,NetBeans和IDEA(现在9.0测试版开源)都有免费的GUI构建器


    GUI构建者有Jason提到的各种缺点。如果您希望能够很好地控制正在发生的事情,但仍然希望能够通过手工编写一个复杂的GUI,那么请查看。

    Eclipse是一个很有前途的新贵。它并不是世界上最稳定的东西,但它在代码中完成了所有表单的工作,因此在源代码管理中没有难以读取和合并的单独文件。当你第一次尝试时,需要一些时间来适应。但是,一旦您学会解决这些bug,您就可以非常快速地开发Swing GUI。

    Eclipse是一个有前途的新贵。它并不是世界上最稳定的东西,但它在代码中完成了所有表单的工作,因此在源代码管理中没有难以读取和合并的单独文件。当你第一次尝试时,需要一些时间来适应。但是一旦你学会了如何解决这些bug,你就可以很快地开发Swing gui。

    如果你想使用gui构建器,我会选择w/matisse,正如Jason提到的,这其中有一些缺点,但是你还需要包含matisse布局使用的jar文件,这可能是个问题,也可能不是问题

    但是,如果您打算在swing中开发UI,您很快就会发现大多数gui构建器都有许多缺点,并且当您必须更改某些内容时,生成的代码并不总是清晰的,而且过于臃肿。您还将发现,一旦您变得熟练,您可以手动编写ui,速度比gui构建器快得多,并且您将真正了解正在发生的事情


    所以我说,远离gui构建器,您将创建更好、更易于维护的UI,并且我们/在一些时间和经验中不会希望使用gui构建器。只要开始使用一些基本的Swing-on布局。

    如果你需要,我会使用matisse