为什么要导入 javax.swing.* 而不是 java.swing。*

2022-09-04 05:32:34

我不明白为什么在“java”后面附加了“x”,因为很少有导入包。原因何在?难道不能像其他人一样吗?java.swing.*java.io.*


答案 1

Swing最初是Java的扩展 - 一个可单独下载的库。它成为Java 1.2中“主要”JRE的一部分。对于一个单独的库来说,声称有一个java.*包是很奇怪的,因此目前的情况。还有很多其他扩展程序也有类似的故事。

维基百科上关于Swing的文章有更多关于其历史的信息。


答案 2

来自 Core Java 2:
alt text http://bks5.books.google.fr/books?id=W6bomXWB-TYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U3IeRSfENUVokGf-d9GUZZBU-tYMQ

该名称指示 Java 扩展包,而不是核心包。Swing类确实是Java 1.1的扩展。由于 Swing 类不是核心层次结构的一部分,因此可以将 Swing 类加载到与 Java 1.1 兼容的浏览器中。(浏览器的安全管理器不允许添加任何以 “” 开头的包。在 Java 2 平台上,Swing 包不再是扩展,而是核心层次结构的一部分。任何与 Java 2 兼容的 Java 实现都必须提供 Swing 类。尽管如此,为了与Java 1.1代码兼容,javax名称仍然存在。(实际上,Swing 软件包最初是 ,然后在早期的 Java 2 beta 版本中短暂地被移动到 Java 2 测试版,然后又回到了 Java 2 beta 版本后期,在 Java 程序员的抗议声之后,找到了它最后的安息之地。javaxjava.com.sun.java.swingjava.awt.swingcom.sun.java.swingjavax.swing


推荐