Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GUI—加快学习速度_Java_User Interface - Fatal编程技术网

Java GUI—加快学习速度

Java GUI—加快学习速度,java,user-interface,Java,User Interface,在接下来的几周/几个月里,我将在这里用Java开发出我的第一个真正的GUI。这将是我在Java中的第一个项目,在这里我将坚持一个非常高的编码实践和结果标准,因此我希望学习过程将需要一些时间 我得说我不是Java的初学者,但更像是一个中级用户——习惯了API,在一些关键词上仍然很笨拙。我对OOP很熟悉,主要是通过PHP开发 有没有什么建议可以帮助人们加快学习速度,比如不要这样做,或者我希望有人告诉我这类事情 我在其他几个问题中遇到的第一个问题是一个空布局管理器——显然,这是劣质的编程,会导致麻烦。

在接下来的几周/几个月里,我将在这里用Java开发出我的第一个真正的GUI。这将是我在Java中的第一个项目,在这里我将坚持一个非常高的编码实践和结果标准,因此我希望学习过程将需要一些时间

我得说我不是Java的初学者,但更像是一个中级用户——习惯了API,在一些关键词上仍然很笨拙。我对OOP很熟悉,主要是通过PHP开发

有没有什么建议可以帮助人们加快学习速度,比如不要这样做,或者我希望有人告诉我这类事情

我在其他几个问题中遇到的第一个问题是一个空布局管理器——显然,这是劣质的编程,会导致麻烦。所以,这对我很有帮助,可能节省了一周的时间和一些重写

另一个是使用NetBeans在Swing中四处移动……但我还不能详细说明这一点,需要一些研究

还有其他强有力的建议吗

如果您正在使用,您可以尝试,它现在是一个开源的GUI设计器,并且是Eclipse项目的一部分。它生成的代码非常可读。老实说,有了这个工具,我再也不用手工开发UI了。它确实有摇摆和SWT等功能。还支持许多功能强大的布局管理器,包括MigLayout


并非特定于UI编程,但我强烈建议您阅读。

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

JGoodies拥有著名的FormLayout和其他功能:

SAF JSR-296实施分叉:

Apache Commons,尤其是lang,如果您还没有使用它们,那么您就走错了方向:

目前还不确定SwingX,但它似乎也值得一看:

Java实践,一般好东西:

您肯定应该考虑使用现有的框架和工具。提前多读一些书来获得一张图片,而不是自己去钻研写很多东西,这是很有帮助的。除了用于桌面应用程序中常见翻译的库(例如,用于常见操作菜单项)之外,几乎任何东西都存在


编辑:啊,别忘了SwingWorker…

Swing只是一个GUI API,任何与GUI编程相关的东西(如MVC)都适用,这一主题在CS文献中有详细介绍

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

它是一个“主动子系统”,有自己的专用线程。深入研究swing的线程问题、如何使用SwingWorker等

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

还有其他强有力的建议吗

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


我非常喜欢GridBagLayout。流和框布局也很好,如果您有Java6,那么组布局也很好。NetBeans IDE有一个非常直观的GUI管理器,但是它编写代码的方式有点奇怪。空布局当然具有最大的灵活性,但并不像您所说的那样是一种良好的做法,而且除了这些布局之外,我怀疑您是否需要更多的功能,除非在极少数情况下

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

我不喜欢使用IDE来生成,因为现在您被绑定到IDE,无法从一个IDE移动到另一个IDE


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

Excellent@Kawu,喜欢它:如果你还没有使用这些,你就走错了路。lol。谢谢,我可能会接受,但我会给它一天左右的时间,看看还能有什么结果。哦,不要对Swing的布局管理器期望太高,他们不会提供你需要的复杂布局。因此,您应该寻找定制的布局管理器,我认为它们存在于SwingX中。您还可能希望在GUI元素前面加上它们的类,pn代表JPanel,tf代表JTextField等等。如果您不想这样做,您将最终修复所有内容,例如loginPanel而不是pnLogin,这一点也不好。注意,这不是匈牙利符号,只是一个简单的前缀方案,它允许快速更改GUI元素类,而无需使用新的var名称。我看到前缀偶尔会在修复后弹出,这是一个很好的解释为什么它很有用。非常好的建议,谢谢!我听说了单线程swing的衰落,但我还没有研究这个问题。我要开始钻研了
!我是对的-我更喜欢自己生成它。然而,我似乎记得有一条建议提到,这个人比从头开始使用Swing学习的速度要快得多……请注意,如果你不使用内置的“GUI设计器”并观看其他一些东西,这条建议就不适用。也许你的评论对某些人来说是显而易见的,我只是觉得有必要澄清一下。我与一个使用Ant构建项目的富客户机团队合作。我们可以自由使用任何我们喜欢的IDE,并且不会让公司付出代价。大约一半的开发人员使用Eclipse,而另一半使用Netbeans。没有遇到问题。不同面板的专门布局的好处是,它们在GUI设计器中有更好的支持。GUI设计器中的MigLayout之类的东西只允许您将约束编辑为字符串,因为它太通用了,如果您输入了无效的内容,它会告诉您编辑源文件!。不是很友好。