Ответ 1
Большинство существующих java-кодов GUI-интерфейсов Swing
и, вероятно, останется таким же до тех пор, пока кодовая база не будет гнаться, и никто больше ее не поддерживает.
Большинство новых java-кодов GUI используют JavaFX
, который является заменой Swing
в Java8
и теперь является частью standard java library
. Он позволяет CSS
скинирование, HTML5
элементы, а также имеет очень приятный FXML
(диалект XML/HTML), который позволяет не программистам "попасть туда" и работать с макетом графического интерфейса и т.д. Он также имеет SceneBuilder
, который является свободным/стандартным GUI drag-n-drop
, который автоматически генерирует FXML
для вашей программы.
Я не знаю, когда я говорю FXML
может заменить 3000 строк кода extended JFrame class
для графического интерфейса Swing
с 50 строками FXML
. (недавний проект, который я помог мигрировать).
Swing
по-прежнему используется в значительной степени и будет продолжаться долгое время - в конце концов, это был единственный выбор для Java в течение некоторого времени. JavaFX
, однако, освежает хорошо, и очень-очень-то стоит учиться.
В качестве стороннего - Swing-сборки на AWT-AWT имеют множество проблем, большинство из которых отмечены как "wont-fix" в проекте java (OpenJDK/Oracle). Swing был построен для замены/исправления AWT, однако иногда вы вступаете в брак с объектами AWT в своем приложении Swing. Черт, вы иногда будете вступать в брак с объектами Swing в своем приложении JavaFX. Я бы не стал изучать AWT, если вы узнаете Swing, вы изучаете AWT по большей части. Наибольшая разница с Swing vs AWT - компоненты Swing начинаются с буквы J
. EX: JFrame
vs Frame
и т.д.