Зачем импортировать javax.swing.* вместо java.swing.*
Вопрос
Я не понял, почему к "java" добавляется "x" для нескольких пакетов импорта.В чем же причина?Разве это не может быть просто java.swing.*
как и другие java.io.*
?
Решение
Изначально Swing был расширением к Java - отдельно загружаемой библиотекой.Он стал частью "основного" JRE в Java 1.2.Было бы странно, если бы отдельная библиотека претендовала на пакет java.*, отсюда и текущая ситуация.Есть множество других расширений, у которых похожая история.
В Статья в Википедии о Swing имеет немного больше информации о своей истории.
Другие советы
Название 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
.)
По историческим причинам и обратной совместимости.До java 1.2 swing распространялся как отдельный пакет от java (следовательно, javax как расширение).
Когда swing стал частью стандартного java-дистрибутива, название пакета было сохранено для обеспечения обратной совместимости.Более подробная информация в википедия Статья
В x было потому, что они были продолжениями.В версии 1.1 java не было swing, и когда она была добавлена, они решили назвать ее так:javax ( явакс )
Существует несколько пакетов с похожей историей.