Java图形用户界面(GUI)Swing模型解释

14

我已经使用Swing一段时间了,但是整个JFrame的模型/结构、paint()、super等都让我感到困惑。 我需要一个清晰的解释或链接,来解释整个GUI系统的组织方式。

我已经一段时间使用Swing,但是JFrame的模型/结构,paint(),super等概念在我的脑海中仍然不太清晰。我需要一个清晰的解释或链接,可以帮助我理解整个GUI系统的架构。请注意,我需要保留HTML标记。
7个回答

13

我也遇到了同样的问题。实际上,直到今天我还没有完全理解它是如何工作的。

Swing 是一个非常灵活的框架 - 也许过于灵活了。随着灵活性的增加,就会带来大量的抽象化和混乱。

以下文章对我有很大帮助,让我更好地理解了 Swing 的整体情况:

它们很好地解释了模型和代理的工作原理。每当我看到那些 JLabel、LabelUI、ui.update 等时,都会让我发疯。


1
非常有用的链接 - 以前没有看到过; 收藏起来以便稍后仔细查看。 - Lawrence Dol
是的...我不记得我是怎么找到那个链接的。直到几年后我才发现它。我也不知道用"谷歌搜索"能否找到它,所以我把它加入了我的书签。 - OscarRyz
@OscarRyz的链接已经失效了。你有备份吗?我需要这些资料给我的学生。谢谢。 - ihsan
1
@ihsan 很不幸,Oracle网站上的图片已经损坏:http://www.oracle.com/technetwork/java/architecture-142923.html。但是很幸运,我们有wayback machine:http://web.archive.org/web/20110413222135/http://java.sun.com/products/jfc/tsc/articles/architecture/。 - OscarRyz

2

你是否看过Java Swing教程(点击这里)?它很好地介绍了开发Swing应用程序的基本知识。


2
由于此问题标记有 JFrame,因此我将建议一些链接,以了解如何使用 JFrame 和其他顶级 Swing 容器的工作原理。
我还发现 Swing 很复杂,需要不时查看 Sun 提供的文档 -- 每次我检查时,似乎都会学到新东西。
首先是基础知识:JFrame 类来自 Java API 规范。Java API 规范通常提供有关类的详细信息。在这种情况下,您会注意到有几个链接,例如来自 Java 教程的 如何创建框架 部分。
除此之外,我还建议查看来自 Java 教程的 教训:使用 Swing 组件。该教训提供有关如何使用 Swing 中提供的组件的说明以及一些有用的示例。
对于我在开始使用 Swing 时发现令人困惑的更具体的部分是所有不同类型的面板,例如 ContentPaneRootPaneGlassPane使用顶级容器 部分提供了有关顶级容器的容器层次结构的信息和有用的图表。 如何使用根窗格 部分详细介绍了玻璃、分层和内容面板,提供了大量示例。

1
我发现Swing Explorer是一个宝贵的工具,可以帮助理解组件的层次结构(特别是在复杂的GUI中),并查看属性(可惜只能读取:我们已经习惯了Firebug的便利!)。它还有一个Eclipse插件。

0

《Java界面设计实战》是由Chet Haase和Romain Guy所著的一本关于Java用户界面的优秀书籍。它不仅涵盖了一些高级内容,而且在介绍和前几章中也很好地解释了基本概念。


0
如果在阅读Swing教程后,你发现自己对更高级的主题感兴趣,那么你可能也希望查看Robinson和Vorobiev所著的Swing第二版

0
我发现在源代码中浏览(如果您使用NetBeans,则可以在名称上按Ctrl键单击)非常有帮助。如果我看到一个我不熟悉的方法出现在完成对话框中,我会点击“转到源代码”并查看周围的内容,直到我感到舒适为止。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接