为什么要导入javax.swing。*而不是java.swing。*
我不明白为什么几个导入包中“x”附加了“x”。 是什么原因? 不能只是java.swing.*
像其他java.io.*
?
Swing最初是Java的扩展 – 一个可单独下载的库。 它成为Java 1.2中“主要”JRE的一部分。 如果一个单独的库声称一个java。*包,那将是奇怪的,因此目前的情况。 还有很多其他扩展也有类似的故事。
关于Swing的维基百科文章提供了有关其历史的更多信息。
来自Core Java 2:
替代文字http://bks5.books.google.fr/books?id=W6bomXWB-TYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U3IeRSfENUVokGf-d9GUZZBU-tYMQ
名称javax
表示Java扩展包,而不是核心包。 Swing类确实是Java 1.1的扩展。 因为Swing类不是核心层次结构的一部分,所以可以将Swing类加载到兼容Java 1.1的浏览器中。(浏览器的安全管理器不允许添加任何以“ java.
”开头的包。)在Java 2平台上,Swing包不再是扩展,而是核心层次结构的一部分。 任何与Java 2兼容的Java实现都必须提供Swing类。 然而,为了与Java 1.1代码兼容,javax名称仍然存在。 (实际上,Swing包最初是以com.sun.java.swing
开头的,然后在早期的Java 2 beta版本中短暂地转移到了java.awt.swing
,然后在Java 2 beta版本的后期回到了com.sun.java.swing
。版本,经过Java程序员的抗议,在javax.swing
找到了它的最终安放位置。)
由于历史原因和向后兼容性。 之前java 1.2 swing作为一个单独的包从java分发(因此javax作为扩展)。
当swing成为标准java-distribution软件包的一部分时,保留了名称以便向后兼容。 更多信息在维基百科文章中
x是因为它们是扩展名。 在java的1.1版本中没有swing,当它被添加时,他们决定将它命名为:javax
有许多具有相似历史的包。