2009-11-12 94 views
1

我需要开发一些使用swing的java gui。
几年前,我确实开发了一点摇摆。
但是,看起来,这相当耗费精力,没有太多工具可以帮助你。摇摆发生器

但我确信今天应该会更容易,必须有工具。
我想使用某种发生器或可能是一个实用程序,甚至是一个框架。
我知道Eclipse有几个插件,Netbeans有一个很好的内置工具。我也听说过关于Jide框架的好消息。

但是我仍然不知道他们中的任何一个。

是否有一个工具/实用程序/发电机/框架,你已经使用,真的帮助你?

显然我更喜欢那些免费的东西,但是如果你知道某件真的非常好而且花钱的东西,那也可以起作用。

谢谢。

+0

你可以看看我试图建立一个表单生成器:http://code.google.com/p/swing-formbuilder/ – eav 2011-04-06 07:36:52

回答

2

多年来,我一直使用内置“Matisse”表单编辑器的NetBeans。它具有内置IDE的优点,因此表单编辑和代码生成相当无缝。如果您是Swing的新手,那么可以大幅提升(只要您继续使用NetBeans作为您的IDE)。

有一些问题,但是:

  1. 不能轻易移动窗体到另一个IDE。生成的代码可能工作,但表单数据本身存储一个XML文件。
  2. 如果有两个人同时编辑表单,SVN/CVS中可能会出现几乎不可能调和的冲突。 XML不是人类可读的。
  3. 在过去,我发现表单XML文件损坏自身,这将导致表单生成错误。
  4. 表单编辑器有时会让自己的头脑发生变化,当你做一些像调整控件一样简单的东西时,就会破坏你的安排。

尽管如此,我仍然继续使用它,因为没有其他东西看起来吸引我。

+0

是的,马蒂斯是一个快速完成工作的方法。 – Geo 2009-11-12 17:31:05

+0

马蒂斯只有一个“t”。 – 2009-11-12 18:21:54

2

实际上,到目前为止我发现的编写Swing框架的更快的方法是使用Groovy SwingBuilder,但是您必须在项目中包含groovy的jar以使用它。这是从他们的网站采取了一个例子,它的主要synctactic糖,但它可以帮助:

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()) 
    } 
} 

否则有一些“视觉”的方法解决问题,但他们不会让你跟你写的接口,以便迅速整合(例如jvider),但NetBeans和Eclipse有一些插件可以完成肮脏的工作,但是和以前一样:您无法集成如此无缝。

1

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

GUI构建器具有Jason所说的所有缺点。如果你想好好控制正在发生的事情,但仍然希望用手来编写复杂的GUI,请查看MigLayout

1

Eclipse的Visual Swing是一个有前途的新贵。它不是世界上最稳定的东西,但它在代码中完成所有形式的东西,所以没有单独的文件难以在源代码管理中读取和合并。当你第一次尝试时,需要一些习惯。但是,一旦你学会了解错误,你很快就开发了Swing GUI。

1

如果您想使用gui构建器,并且存在Jason提到的缺点,但您还需要包含由matisse布局使用的jar文件,那么可能会也可能不会一个问题。但是如果你打算在开发用户界面的时候,你很快会发现大部分的gui构建者都有很多缺点,当你不得不改变某些东西时,生成的代码并不总是很清晰,并且臃肿不堪。你也会发现,一旦你变得精通,你可以用手工比gui builder更快地写出一个ui,并且你将会真正理解正在发生的事情。

所以我说远离gui builders,你会创建更好和更易维护的UI,并且有一定的时间和经验不会想要使用gui builder。只需从布局上启动一些基本的Swing tutorials即可。

1

我可以虚心地建议Metawidget吗?

它需要一种不同的UI开发方法 - 去除大部分容易出错,繁琐的工作,同时仍保留传统工具包的灵活性。它集成了你现有的前端(Swing,在你的情况下)和后端(Java,我猜),并在运行时工作(无代码生成)。

有短短的介绍视频在这里:

http://metawidget.org/videos.html

如果你有机会去看一看,我会非常感谢您的反馈意见。

Regards,

Richard。

2

我的建议是WindowBuilder Pro。它是一个GUI设计器,可作为Eclipse IDE的插件。

您可以使用它来生成Swing,SWT或GWT GUI,甚至可以根据需要生成一些Eclipse RCP代码。我必须说,它对我来说效果很好。但我没有用它来生成任何Swing代码,因为我宁愿使用SWT来代替。