我需要的是一些好的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 并且在您完全熟悉 Java API 之前不要使用 FXML )。通过这种方式,您将更好地了解布局管理和其他内容的来龙去脉。当然你会犯一些错误并且会有一些挫败感,但只要坚持不懈,事情就会变得清晰。而且您最终可能会决定您更喜欢手动编码而不是使用图形工具。
棘手的部分通常是创建高质量的、可动态调整大小的 GUI,这些 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 教程和Ensemble 示例应用程序,但请注意,某些 JavaFX 教程面向更有经验的程序员。