我需要的是一些好的 java 库来帮助我完成这个过程(时钟小部件和随后更复杂的 gui)。所以我想从免费的 jgoodies 那里获取库。
您可能并不像您认为的那样需要库。从第一原理中学习东西,你会学得更好。
所有主要的 Java GUI 框架都已经相当高级且功能强大。当您第一次开始时,我认为您应该跳过第 3 方库,看看您在基本 JRE 和您选择的框架中提供的内容能走多远。仅使用基本框架、Java 语言和 JRE 就已经足够学习了。如果你过早地尝试添加其他框架,你最终会超载、困惑和效率低下。此外,库的抽象程度增加可能会妨碍您充分了解一些重要的基本原理。
一旦您在构建事物方面获得了更多经验,您就会更好地了解框架中的差距在哪里适合您的应用程序,届时您可以添加 3rd 方库。
计划制作一个简单的时钟小部件
如果您遇到问题,这里是 JavaFX 时钟的代码:How to draw a clock with JavaFX 2? 或 Swing 中的类似实现。
请注意,创建时钟与使用预定义控件库创建基于表单的传统 GUI 有很大不同 - 但任何主要的 Java GUI 框架都可以处理这两项任务。
不要把时钟作为你的第一个 GUI 编程任务,做一些更简单的事情。然后尝试稍后创建时钟。
使用swing进行精确布局确实是一项艰巨的工作
有用于 Swing 和其他框架的交互式图形布局管理器(例如优秀的 JavaFX 的 SceneBuilder),这使得这更容易。
但是,在第一次开始时,可能值得手动编写代码而不是让工具为您管理布局(例如,在学习 JavaFX 时,只使用 Java API,并且在您完全熟悉之前不要使用 FXML Java API)。通过这种方式,您将更好地了解布局管理和其他内容的来龙去脉。当然你会犯一些错误并且会有一些挫败感,但只要坚持不懈,事情就会变得清晰。而且您最终可能会决定更喜欢手动编码而不是使用图形工具。
棘手的部分通常是创建高质量的、可动态调整大小的 GUI,在不同的分辨率和窗口大小下看起来都不错 - 无论使用什么 GUI 工具包,这对于初学者来说通常都很棘手。
JavaFX 中的布局管理器与 Swing 中的基本布局管理器非常相似 - 因此在布局方面,这两个框架之间几乎没有区别。
JavaFX 中的保留模式场景图可能比 Swing 的直接模式绘制更容易使用,但我想这与布局不太相关。
自省工具(例如用于 JavaFX 的 ScenicView)可简化运行时的布局调试。将 ScenicView 之类的东西想象成类似于 Firebug for HTML 的东西(例如,您必不可少的布局调试伴侣)。
现在我完全糊涂了,不知道该做什么,什么都不懂。
你比你想象的要了解更多,否则你不会知道足够多的知识来问这个问题。
你应该做的 (IMO) 只是选择一个 Java GUI 框架(任何框架 - 它们都可以通过),选择一个体面的开始任务(看起来非常简单的东西 - 甚至比时钟更简单)并开始编码.使一切与任务相关;非常小的任务,具有明确的最终目标。编写相当数量的代码,然后总是返回并修改您的代码,它的输出试图使其成为最好的 - 不要满足于足够好。
尝试画出彩虹和快乐的面孔——当你编写代码并在屏幕上看到它时,你会对自己感觉良好 :-)
如果您需要复习 Java 语言,请关注 Oracle Learning the Java Language trail。这条线索是我多年前学习 Java 的方式。它经过多年的维护,今天仍然是一个很好的资源和有用的资源。
如果您选择 Swing,请点击 MadProgrammer 的起始链接。
如果您选择 JavaFX,请遵循 JavaFX tutorials 和 Ensemble sample app,但请注意,某些 JavaFX 教程面向更有经验的程序员。