【发布时间】:2010-03-15 21:28:34
【问题描述】:
我打算编写一个基于 Swing 的应用程序(使用 Netbeans 6.8)。
Netbeans 似乎有一个非常先进的 GUI 编辑器……我仍然对它生成的代码存有疑问。此外,我不喜欢代码部分被锁定的事实(我仍然理解需要)。
有人成功使用过 Netbeans GUI 编辑器吗? 它会“缩放”吗?
【问题讨论】:
标签: java user-interface swing netbeans
我打算编写一个基于 Swing 的应用程序(使用 Netbeans 6.8)。
Netbeans 似乎有一个非常先进的 GUI 编辑器……我仍然对它生成的代码存有疑问。此外,我不喜欢代码部分被锁定的事实(我仍然理解需要)。
有人成功使用过 Netbeans GUI 编辑器吗? 它会“缩放”吗?
【问题讨论】:
标签: java user-interface swing netbeans
是的,NetBeans GUI 构建器是最好的之一。我对它处理臭名昭著的GridBagLayout 的能力印象特别深刻。
根据我的经验,Borland JBuilder 是最好的往返 GUI 编辑器;如果我没记错的话,它生成的代码没有“锁定区域”,并且通常可以继续优雅地使用您手动调整的 GUI 代码。
不过,我还没有找到一个不会偶尔卡住复杂布局的 Java Swing GUI 编辑器,即进入不再进行进一步编辑和/或需要一些备份或修复的状态。
因此,我更喜欢手动编写所有 GUI。 JavaSpecialists 的 Heinz Kabutz 告诉我他的 GUI 编辑器是 vim。但是,我承认我的大多数其他朋友和同事都认为我这样做很疯狂。
【讨论】:
使用最新版本的 Netbeans,您可以在 Eclipse 和 Netbeans 之间共享项目。因此,如果您不太喜欢在其中编写代码,则可以将其仅用于 GUI 功能,然后在 Eclipse 中编辑代码。确保首先在 Eclipse 中创建项目,然后使用导入器。他们将共享同一个目录。
【讨论】:
我一直更喜欢手写我的 Swing UI。我已经尝试过 Netbeans,但我只是不相信它能为复杂的 UI 做正确的事情(尽管它对于一个小的简单 UI 来说非常棒)。
我想我们很多人都害怕因为 GridBagLayout 而手动编写 Swing 布局。用过几次就没那么难了。我曾经发誓。但是,最近我换了一份新工作,他们现有的代码改用TableLayout。它更简单,对我来说似乎同样强大。我已经成长为更喜欢它而不是 GBL。如果您是编写 Swing 的新手,我认为您应该考虑一下。
很抱歉,我不确定你的规模问题。
祝你好运!
关于 JBuilder 的有趣故事。教我 swing 的朋友教我手动编写代码,他总是让我将布局代码放在 jbinit() 方法中。几个星期以来,我一直认为这只是他使用的一些代码风格。直到后来我才知道它是当时 JBuilder 的一个自动生成的方法。我根本不需要使用它。我就是这样一个 n00b :)
【讨论】:
我最近(4 周前)从 eclipse/SWT 切换到 Netbeans 6.8/Swing(在厌倦了 Eclipse 中的一些插件许可问题之后)。我对 Netbeans 或 Swing 都不熟悉,我很快就被打动了。我设法将 4 年的 SWT 经验快速转化为 Swing 经验,现在认为 Netbeans 是最好的 Java GUI 编辑器。虽然自动生成的代码的某些部分是只读的 - 这是一件好事。 Eclipse 允许您编辑自动生成的代码,如果您犯了错误,这可能会导致布局、对齐等问题。 Netbeans 允许您创建自定义的“事件处理方法”(仅限我的术语),它会获取自动生成的块以在生命周期的特定点调用您的方法,以便您可以在需要时访问“只读”代码。
所以坚持使用 NetBeans,它是最好的 Java Swing 环境。
您不想为任何大小合理的应用手动编码。让 GUI 为您完成大部分工作(尤其是在使用不同的布局时 - 仅此一项就会让您大吃一惊),这样您就可以专注于服务/业务逻辑。
【讨论】:
我在 Eclipse 中使用过 netbeans、WindowsBuilder 插件,并且只能手动编写 Swing 代码。我非常欣赏netbeans 和windows builder 为您编写swing 代码的事实,但我喜欢了解我项目中的每一寸代码,并且知道当我想要更复杂并添加细节时该去哪里。话虽如此,我认为 netbeans 也值得一试,但我对浏览生成的 java 代码有点紧张,而如果我是从头开始编写它们,我就不用担心了。
用于 Eclipse 的 WindowsBuilder 插件完全搞砸了我的 Eclipse,内容辅助变得永久缓慢,即使在删除它之后也是如此。虽然 Swing 数据绑定框架有一些学习曲线(至少对我来说,因为我不知道它与 JFace 数据绑定框架相同),但我很难找到它的文档,并被提到了 JFace wiki... .
总的来说,您是对的,我认为您确实可以更多地考虑您的应用程序逻辑,而不是编写花费在 gui 上的管道代码,但是如果您自己编写它们,它会变得越来越快。我也不喜欢我需要依赖 gui 编辑器来创建我的应用程序这一事实。
【讨论】: