Java GUI - 加速学习曲线

时间:2011-07-19 23:57:54

标签: java user-interface

在接下来的几周/几个月内,我将在这里开始使用Java中的第一个严肃的GUI。这将是我在Java中的第一个项目,我将在编码实践和结果方面达到很高的标准,所以我希望学习过程需要一些时间。

我说我不是Java的初学者,但更多的是中级用户 - 习惯了API,在一些关键词上仍然很尴尬。我对OOP很满意,主要是通过PHP开发。

有没有人可以想到的提示,以帮助加快学习曲线,即“不要那样做”或“我希望有人告诉我这种”类型的事情。

我在其他几个问题中遇到的第一个问题是一个空的布局管理器 - 显然,这是一个粗制滥造的编程并导致故障。所以,这对我有所帮助,可能会在那里节省一周和一些重写。

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

那里还有其他强有力的建议吗?

7 个答案:

答案 0 :(得分:4)

  

那里还有其他强有力的建议吗?

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

答案 1 :(得分:3)

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

enter image description here

答案 2 :(得分:3)

您可能需要查看以下内容:

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

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

Apache Commons,特别是lang,如果你不使用这些,你就走错了路:http://commons.apache.org/

目前还不确定SwingX,但似乎也值得关注:Does anyone use the "swingx" extensions to Swing?

Java实践,一般好东西:http://www.javapractices.com

您一定要考虑使用现有的框架和工具。它有助于预先阅读很多内容来获取图片,而不是自己去写很多东西。除了用于桌面应用程序中的常见翻译的库之外,几乎存在任何其他内容,例如用于常见操作(菜单项)。

编辑:啊,不要忘记SwingWorker ......

答案 3 :(得分:2)

  

另一个是使用NetBeans在Swing中移动......

我不喜欢使用IDE进行生成,因为现在您已经与IDE绑定,无法从IDE迁移到IDE。

您必须遵循他们生成的代码的结构。我喜欢完全控制代码。

答案 4 :(得分:1)

不是特定于UI编程,但我强烈建议您阅读Effective Java

答案 5 :(得分:1)

Swing只是一个GUI API(与GUI编程相关的任何内容,例如MVC都适用,CS文献中很好地涵盖了该主题)。

只需注意以下警告(实际上适用于大多数GUI系统,因为它极大地简化了编写此类库的任务):

这是一个'活跃的子系统',它有自己的专用线程。深入研究swing的线程问题,如何使用SwingWorker等。

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

答案 6 :(得分:1)

我非常喜欢GridBagLayout。如果你有Java 6,那么Flow和Box Layout也是很好的知识和组布局.NetBeans IDE有一个非常直观的GUI管理器,但它编码的方式有点奇怪。当然,null布局具有最大的灵活性,但并不像你说的那样好,而且除了这些布局之外,我怀疑你除了极少数情况外还需要更多的功能。