2011-07-19 54 views
0

在接下来的几周/几个月里,我将开始使用Java的第一个严肃的GUI。这将是我在Java中的第一个项目,我将坚持自己的编码实践和结果的高标准,所以我期望学习过程需要一些时间。Java GUI - 加速学习曲线

我想说,我不是一个初学Java的人,但更多的是一个中间用户 - 习惯API,仍然在一些关键字上很尴尬。我非常喜欢OOP,主要是通过PHP开发。

有没有人们能想到的任何提示来帮助加快学习速度,即“不要那样做”或“我希望有人告诉我这种类型的东西”。

我在其他一些问题中遇到的第一个问题是一个空布局管理器 - 显然,这是严重的编程问题,并导致故障排除。所以,这可以立即帮助我,可能会在那里保存一周并重写一些内容。

另一个是使用NetBeans在Swing中移动...但我无法详细说明那个,但需要一些研究。

有没有其他强大的建议呢?

回答

3

你可能想看看以下内容:

的JGoodies有著名的FormLayout和其他的东西:http://www.jgoodies.com/

SAF JSR-296实现叉:http://kenai.com/projects/bsaf/pages/Home

Apache的风景,尤其是郎,如果你不使用这些,你在错误的轨道上:http://commons.apache.org/

不知道关于SwingX现在,但它似乎也值得一看:Does anyone use the "swingx" extensions to Swing?

Java的做法,一般的好东西:http://www.javapractices.com

你绝对应该考虑使用现有的框架和工具。它有助于预先阅读很多内容以获得图片,而不是深入研究自己。除桌面应用程序中常见的翻译库外,几乎所有东西都存在,例如用于常见操作(菜单项)。

编辑:啊,不要忘了...的SwingWorker

+0

优秀的@Kawu,喜欢它:“如果你不使用这些,你就错了。”哈哈。谢谢,可能会接受,但我会给它一天左右,看看还有什么可以摆脱。 – Ben

+0

哦,不要期望Swing的布局经理太多,他们知道不提供你需要的复杂布局。因此,您应该寻找自定义布局管理器,我认为这些管理器存在于SwingX中。您也可能想要在它们的类中为GUI元素添加前缀,为JPanel添加pn,为JTextField添加tf等。如果您不想这样做,您最终会后缀所有内容,例如loginPanel而不是pnLogin,这没什么更好的。请注意,这不是匈牙利符号,只是一个简单的前缀方案,它允许快速更改GUI元素类,而不必提供新的var名称 – Kawu

+0

我已经看到前缀(偶尔postfixing)在这里和那里弹出,这是一个伟大的解释为什么它很有用。 – Ben

3

如果您使用的是Eclipse,您可以尝试WindowBuilder Pro,这是一个现在是开源的GUI设计器,也是Eclipse项目的一部分。它生成的代码非常易读。老实说,使用这个工具,我不会再用手工进行UI开发。它包括Swing和SWT等等。还支持许多强大的布局管理器(包括MigLayout!)。

enter image description here

+0

我和我会,欢呼。 – Ben

1

秋千只是一个GUI API(以及任何GUI编程如MVC将适用相关和主题很好地覆盖在CS文献)。

只要注意以下几点需要注意(这实际上适用于大多数GUI系统,在那里,因为它巨大的简化了编写此类库的任务):

这是一个“积极的子系统”,有它自己的专用线程。深入了解Swing的线程问题,如何使用SwingWorker等。

就工具而言,最后我检查了一下,NetBeans是Swing land中的山丘之王(但那是前ora)。如果您不喜欢该工具,那么请为自己做个忙,至少创建一个示例应用程序并观察IDE如何为您组织应用程序。那里有一船集体知识。

+0

伟大的建议,谢谢!我听说过单线程摆动的垮台,但我还没有研究这个问题。我会钻研! – Ben

4

是否还有其他强大的建议呢?

同样在布局的一般主题上,当嵌套布局的组合会达到效果时,不要花时间试图找到“正确的”布局。有关示例代码,请参见Nested Layout Example

+0

这可能是另外几天救了,欢呼! – Ben

+0

关于不同面板的专门布局的好处是它们在GUI设计器中有更好的支持。 GUI设计器中的MigLayout之类的东西只允许您将约束条件编辑为字符串,因为它太泛化(并且会告诉您如果输入无效的内容就编辑源文件!)。不很用户友好。 –

1

我喜欢的GridBagLayout了很多。如果您拥有Java 6,流和框布局也很好理解和分组布局。NetBeans IDE有一个非常直观的GUI管理器,但它编码的方式有点奇怪。当然,空布局具有最大的灵活性,但并不像您所说的那么好,除了这些布局之外,我怀疑除了极少数情况外您还需要其他功能。

+0

非常好,很高兴听到关于零布局的确认... – Ben

2

另一种是使用NetBeans走动在Swing ...

我不使用IDE生成,因为好了,现在你绑在IDE的粉丝,你可以” t从IDE转移到IDE。你不得不遵循他们生成的代码的结构。我喜欢完全控制代码。

+0

我对你很合适 - 我更喜欢自己生成它。然而,我似乎还记得那条建议提到这个人比从头开始使用Swing学得快得多...... – Ben

+0

@camickr amen +1 – mKorbel

+0

请注意,如果您不使用内置驱动程序,在'GUI设计器'(并观看其他一些事情)。 (也许这对你的评论中的某些人来说是显而易见的,我只是觉得这是值得澄清的。)我与一个使用Ant构建项目的富客户端的团队合作。我们可以自由使用任何我们喜欢的IDE(并且不会让公司花费)。大约一半的开发人员使用Eclipse,而另一半使用Netbeans。没遇到任何问题。 –