Зачем импортировать javax.swing. * Вместо java.swing. *

Я не понял, почему "x" добавлено в "java" для нескольких пакетов импорта. Какова причина? Разве это не может быть просто java.swing.* как другие java.io.*?

Ответы

Ответ 1

Swing первоначально был расширением для Java - отдельно загружаемой библиотеки. Он стал частью "основной" JRE в Java 1.2. Было бы странно, если бы отдельная библиотека заявила о пакете 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

Имя javax указывает пакет расширения Java, а не основной пакет. Классы Swing действительно являются расширением Java 1.1. Поскольку классы Swing не были частью основной иерархии, можно загружать классы Swing в браузер с поддержкой Java 1.1 (менеджер безопасности браузера не позволяет добавлять пакеты, начинающиеся с "java.". ) На платформе Java 2 пакет Swing больше не является расширением, а является частью основной иерархии. Любая реализация Java, совместимая с Java 2, должна предоставлять классы Swing. Тем не менее, имя javax остается, для совместимости с кодом Java 1.1. (На самом деле пакет Swing начинался как com.sun.java.swing, а затем был переведен в java.awt.swing во время ранних бета-версий Java 2, а затем вернулся к com.sun.java.swing в поздних версиях Java 2 и после воплей протеста Java-программистов, нашел свое окончательное место отдыха в javax.swing.)

Ответ 3

По историческим причинам и обратной совместимости. До того, как java 1.2 swing был распространен как отдельный пакет из java (следовательно, javax как расширение).

Когда swing стал частью стандартного java-дистрибутива, имя пакета было сохранено для обратной совместимости. Дополнительная информация в статье по Википедии

Ответ 4

x состоял в том, что они были расширениями. В версии 1.1 java не было качели, и когда она была добавлена, они решили назвать ее так: javax

Существует несколько пакетов с похожими историями.