以编程方式编写gui,或使用高级gui编辑器(Java Swing)?

时间:2010-03-15 21:28:35

标签: java user-interface swing netbeans

我打算编写一个基于Swing的应用程序(使用Netbeans 6.8)。

似乎Netbeans有一个非常高级的GUI编辑器......我仍然对它生成的代码有疑问。另外,我不喜欢代码部分被锁定的事实(我仍然理解需要)。

有没有人成功使用过Netbeans GUI Editor? 它是否“规模化”?

5 个答案:

答案 0 :(得分:7)

是的,NetBeans GUI构建器是最好的之一。它对处理臭名昭着的GridBagLayout的处理能力印象特别深刻。

根据我的经验,Borland JBuilder是最好的往返GUI编辑器;如果我没记错的话,它会产生没有“锁定区域”的代码,并且通常会继续使用您手动调整的GUI代码。

尽管如此,我还没有找到一个Java Swing GUI编辑器,它不会偶尔阻塞复杂的布局,即进入进一步编辑不再可行的状态和/或需要一些备份或修复。

因此,我更喜欢手工编写所有GUI。 JavaSpecialists的Heinz Kabutz告诉我他的GUI编辑器是vim。但是,我承认我的其他大多数朋友和同事都认为我这样做很疯狂。

答案 1 :(得分:6)

使用最新版本的Netbeans,您可以在Eclipse和Netbeans之间共享项目。因此,如果您不喜欢编码,可以将其用于GUI功能,然后在Eclipse中编辑代码。确保首先在Eclipse中创建项目,然后使用导入器。他们将共享同一目录。

http://netbeans.org/kb/docs/java/import-eclipse.html

答案 2 :(得分:4)

我总是喜欢手工编写我的Swing UI。我尝试过Netbeans,但我只是不相信它能为复杂的用户界面做正确的事情(尽管对于一个简单的小UI来说它非常棒)。

我认为很多人都害怕因为GridBagLayout手工编写Swing Layouts。一旦你使用它几次就不那么难了。我曾经发誓过它。但是,最近我转到了新工作,他们现有的代码使用了TableLayout。它更简单,对我来说似乎同样强大。我已经逐渐喜欢它了GBL。如果你刚开始写Swing,我想你应该考虑一下。

对不起,但我不确定你的比例问题。

祝你好运!

有关JBuilder的有趣侧面故事。教我摇摆的朋友教我用手编码,他总是让我把布局代码放在jbinit()方法中。几个星期以来,我认为这只是他使用的一些代码风格。直到后来我才知道它是当时JBuilder的一个自动生成方法。我根本不需要使用它。我是这样的n00b:)

答案 3 :(得分:2)

我最近(4周前)从eclipse / SWT切换到Netbeans 6.8 / Swing(在厌倦了Eclipse中的一些插件许可问题之后)。我冷静地对Netbeans或Swing不熟悉,很快就给人留下了深刻的印象。我设法将4年的SWT经验转换为Swing体验非常快,现在认为Netbeans是最好的Java GUI编辑器。虽然自动生成代码的某些部分是只读的 - 这是一件好事。 Eclipse允许您编辑自动生成的代码,如果您犯了错误,这可能会导致布局,对齐等问题。 Netbeans允许您创建自定义的“事件处理方法”(仅限我的术语),它使自动生成的块在生命周期的特定点调用您的方法,以便您可以随时访问“只读”代码。

坚持使用NetBeans,它是最好的Java Swing环境。

对于任何合理大小的应用,您都不希望手动编码。让GUI为您完成大部分管道工作(特别是在使用不同的布局时 - 仅此一项就可以让您撕掉头发),这样您就可以专注于服务/业务逻辑。

答案 4 :(得分:1)

我在eclipse中使用了netbeans,WindowsBuilder插件,并且只是手工编写Swing代码。我非常感谢netbeans和windows builder为你编写swing代码这一事实,但我喜欢知道我项目中的每一寸代码,并且当我想要更复杂并添加细节时知道去哪里。话虽如此,我认为netbeans也值得一试,但我对通过生成的java代码感到有点紧张,而如果我从头开始编写它们,我就不会有这种担心。

eclipse的WindowsBuilder插件完全搞砸了我的日食,内容辅助变得永久缓慢,即使在删除它之后。虽然Swing数据绑定框架有一些学习曲线(至少对我而言,因为我不知道它与JFace数据绑定框架相同),但我很难找到它的文档,并且被引用到JFace wiki ......

总的来说,你是对的,我认为你可以更多地考虑你的应用程序逻辑,而不是编写在gui上花费的管道代码,但如果你自己编写代码,它就会越来越快。我也不喜欢我需要依赖gui编辑器来创建我的应用程序。