0

我是一个完整的java初学者。虽然我研究了很多关于语言的文献(好吧),但这是我的第一个真正的项目。

我基本上是打算做一个简单的时钟小部件,然后打算构建 Gui 。到现在为止,我已经学会了挥杆。但后来我在这个网站上发现 Swing 有点过时了(参考:Java GUI 框架。选择什么?Swing、SWT、AWT、SwingX、JGoodies、JavaFX、Apache Pivot?)。

我需要的是一些好的java库来帮助我完成这个过程(时钟小部件和随后更复杂的gui)。所以我想从免费的 jgoodies 那里获取库。

现在我完全糊涂了,不知道该做什么,什么都不懂。当然,我不需要设计模式等方面的书籍。只需 java 参考和一些关于 gui 的使用 java 和 jgoodies 的教程就可以让我开始。而且我在任何地方都找不到它们。所以请指出我正确的方向。

阅读背景(Head First java,java 完整的 ref 和数据结构和算法)

(如果不够,建议其他)

4

2 回答 2

1

AWT 已被 Swing 有效地取代。

SWT 是一个不同的框架,它提供了与操作系统更大的本机交互

JavaFX 是新的播放器,虽然有些人认为它是 Swing 的替代品,但它的主要目的是显示 Flash 或作为它的替代品。

SwingX 和 JGoodies 是基于 Swing 的库。

Swing 和 SWT 已经出现了很长一段时间,有些人可能认为它们是“旧的”,但这意味着围绕框架有大量的知识,以及旨在支持和扩展它们的一些库

JavaFX 是市场上的新玩家,尚未建立相同的知识和支持基础。

如果我是你。我会(个人)关注 Swing,因为它将为您提供经验丰富的开发人员的最佳基础和支持,以帮助您前进。

一旦你变得更舒服,你就可以探索 SWT、JavaFX 和其他工具包和框架。

我将从使用 Swing 创建 GUI执行自定义绘画2D 图形开始。

我(个人)的感觉是建立对基础库的理解,尝试了解它的优点和缺点。这将帮助您了解何时使用 SwingX 和 JGoodies 等库 - 恕我直言

于 2013-08-18T02:49:00.067 回答
0

我需要的是一些好的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 教程面向更有经验的程序员。

于 2013-08-18T04:25:16.360 回答