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

gir*_*iri 13 java swing package

我不明白为什么几个导入包中"x"附加了"x".是什么原因?难道不能java.swing.*像其他人一样java.io.*吗?

Jon*_*eet 20

Swing最初是Java的扩展 - 一个可单独下载的库.它成为Java 1.2中"主要"JRE的一部分.如果一个单独的库声称一个java.*包,那将是奇怪的,因此目前的情况.还有很多其他类似故事的扩展.

关于Swing维基百科文章提供了有关其历史的更多信息.

  • 从维基百科链接StackOverflow有什么好处?每个人都可以创建这样的链接...... (5认同)

JRL*_*JRL 17

来自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.awt.swing在早期的Java 2 beta版本中被简单地移动,然后回到com.sun.java.swingJava 2 beta版本的晚期,并且经过Java程序员的抗议之后,找到了它的最终安放位置javax.swing.)


Ahe*_*Ahe 5

由于历史原因和向后兼容性.之前java 1.2 swing作为一个独立的包从java分发(因此javax作为扩展).

当swing成为标准java分发程序包的一部分时,保留了名称以便向后兼容.更多信息在维基百科文章中