如何学习Java Swing并快速制作GUI?

如何学习Java Swing并快速制作GUI?,java,swing,user-interface,Java,Swing,User Interface,在过去的一年里,我一直在用Java编写代码,我认为我有坚实的OO和 基本的职业技能。我希望在现有项目的基础上构建一个并不复杂的JavaGUI,但我希望尽快完成它。因此,我正在寻找一个API,它将抽象所有的基本实现,并让我专注于我的最小可行产品的核心 我真的更喜欢用eclipse编码,而不是浪费时间去学习如何适应另一个IDE。您建议我怎么做?事实上,Netbeans中的GUI构建器是您快速制作GUI的最佳选择。如果你脑子里有关于它应该是什么样子的图片,你可以在几分钟内完成。在那之后,唯一要做的就是

在过去的一年里,我一直在用Java编写代码,我认为我有坚实的OO和 基本的职业技能。我希望在现有项目的基础上构建一个并不复杂的JavaGUI,但我希望尽快完成它。因此,我正在寻找一个API,它将抽象所有的基本实现,并让我专注于我的最小可行产品的核心


我真的更喜欢用eclipse编码,而不是浪费时间去学习如何适应另一个IDE。您建议我怎么做?

事实上,Netbeans中的GUI构建器是您快速制作GUI的最佳选择。如果你脑子里有关于它应该是什么样子的图片,你可以在几分钟内完成。在那之后,唯一要做的就是将它绑定到应用程序;更具体地说:例如,让按钮的ActionListener做他们应该做的事情

这当然取决于应用程序的大小。如果它很小,那么为它制作GUI就很容易了。另一方面,如果它有2000个类,那么它可能会更复杂,因为GUI可能会更复杂


如果应用程序可以建模为模型-视图-控制器体系结构,那将对您有很大帮助。

我觉得eclipse RCP可能是您的朋友(如果您正在寻找富客户机解决方案)。只需为插件开发绘制eclipse发行版(比将插件安装到现有副本快得多),创建一个示例项目并开始黑客攻击


对于web应用程序,我推荐playframework。它与eclipse集成得相当好。

我想您会发现,在Java中,GUI是没有捷径可走的。每一种方法都是一种痛苦(*)。即使您使用的是可视化GUI构建器,它仍然是(*)中的一个难题。作为对技能的长期投资,我建议您咬紧牙关,学习以编程方式构建GUI。这是每一个有经验的Swing开发者都会做的,所以最好马上就去实现这个目标。您也可以从SWT/JFace开始,但该APi比Swing更加困难和古怪。RCP在SWT/JFace上又增加了一层诡异和复杂性,所以我在还是初学者的时候就不会这么做了,事实上,除了制作一个大型GUI应用程序之外,任何时候都不会这样做。

这是swing中的速成课程

首先要学习的是,这是一个很大的障碍,它们很挑剔,你必须掌握它们

第二是听众,没有他们,一切都不会发生

第三是JComponents本身,您将在学习过程中慢慢学习它们。我建议使用NetBeans GUI builder来使用它们,并对它们有一种感觉

请注意,大多数JComponent都有不同的模型,您可以使用它们,而不是默认的模型

另外,我发现JPanel和JComponents之间的唯一区别是JPanel有布局管理器

这里是各种swing黑客和教程的好地方:

 http://www.java2s.com/Tutorial/Java/0240__Swing/Catalog0240__Swing.htm

 http://www.java2s.com/Code/Java/Swing-Components/CatalogSwing-Components.htm

“您建议我怎么做?”因为要制作一个可调整大小的跨平台GUI需要花时间来理解布局&考虑到您的时间限制,我建议你雇用一个人。@AndrewThompson我不是说我想要一个VB风格的组件移动器,但有很多方法可以实现,所以我只是询问ST用户,以便他们可以根据他们的经验向我推荐。我支持@AndrewThompson。如果它是那么的直截了当和简单,就不会有那么多带有摇摆标签的问题了。但是我建议从OracleSwingLayoutManager教程开始,他没有告诉我们“更喜欢使用eclipse编码”和“不要浪费时间来学习适应另一个IDE”吗?Netbeans完全符合“另一个IDE”的要求:D@Andreas_D没错,你是对的。但我认为Netbeans中的GUI构建器是最好的。我认为
X+Y
。X=学习如何在Netbeans中使用GUI构建器所需的时间。Y=使用该GUI生成器构建GUI所需的时间。Z=在Eclipse中构建GUI所需的时间。(但是,老实说,我仍然更喜欢老式的方法:用笔和纸直接起草布局和编码)如果您更喜欢Swing而不是SWT,还有NetBeans平台。但是学习RCP需要时间。我不会向任何想快速制作GUI的人推荐RCP。