Swing все еще используется сегодня?

Используется ли Java Swing? - это последнее сообщение, которое я нашел, и ему 4 года (сейчас 11 лет), так что ...

Используется ли Swing вообще в профессиональной среде? Я студент, и мне интересно, стоит ли этому учиться, или его день прошел.

(Я не спрашиваю о сравнении Swing-AWT ... просто устарел ли Swing в рабочей силе.)


person Evorlor    schedule 27.06.2014    source источник
comment
Да, Swing имеет большое количество поклонников, имеет проверенный послужной список и широкую доступность сторонней поддержки. Будущее сложно предсказать, и оно всегда предсказуемо. Некоторые компании все еще используют AWT: P. Стоит ли учиться. Это будет зависеть от вашего выбора карьеры, но хорошее понимание MVC и подобных вещей, паттернов наблюдателя и создания потребительских паттернов, вероятно, поможет вам.   -  person MadProgrammer    schedule 27.06.2014
comment
Есть довольно много мнений о том, что изучать, но вопрос довольно четко заключается в том, широко ли используется Swing. На этот вопрос можно дать разумно объективный и полезный ответ.   -  person chrylis -cautiouslyoptimistic-    schedule 27.06.2014
comment
Хороший вопрос. Жаль, что он был закрыт. Мы используем Swing для X-типа, ответы были бы чрезвычайно полезны.   -  person Matthew Cornell    schedule 14.03.2016
comment
Как это может быть в первую очередь основано на мнении. Использование - это измеримый факт, который можно подтвердить цифрами.   -  person Mehdi LAMRANI    schedule 02.03.2017
comment
Я все еще поддерживаю в работе очень большое приложение. Это просто, надежно, быстро и очень удобно. Я создал некую основу для себя и, наконец, продолжаю ...   -  person Mahbubur Rahman Khan    schedule 25.03.2019


Ответы (3)


Большинство существующих кодовых баз Java для графического интерфейса пользователя Swing и, вероятно, останутся такими до тех пор, пока кодовая база не разрушится и никто больше не будет ее поддерживать.

Большинство новых баз кода Java с графическим интерфейсом пользователя используют JavaFX, который является Swing заменой в Java8 и теперь является частью standard java library. Он позволяет использовать CSS скины, HTML5 элементы, а также имеет очень красивый FXML (диалект XML / HTML), который позволяет непрограммистам "проникать туда" и работать над макетом графического интерфейса и т. Д. Он также имеет SceneBuilder, который является бесплатный / стандартный конструктор drag-n-drop GUI, который автоматически FXML генерирует для вашей программы.

Я не шучу, когда говорю, что FXML может заменить 3000 строк extended JFrame class кода для Swing GUI на 50 строк FXML. (недавний проект, который я помог перенести).

Swing по-прежнему широко используется и будет использоваться еще долгое время - в конце концов, это был единственный выбор для Java в течение длительного времени. JavaFX, однако, освежающе приятен, и его очень стоит изучить.

В стороне - Swing строится поверх AWT - у AWT много проблем, большинство из которых помечены как "не исправляемые" в java-проекте (OpenJDK / Oracle). Swing был создан для замены / исправления AWT, однако иногда вы можете объединить объекты AWT в свое приложение Swing. Черт возьми, вы иногда будете сочетать объекты Swing в своем приложении JavaFX. Я бы не стал беспокоиться об изучении AWT, если вы изучаете Swing, вы по большей части изучаете AWT. Самая большая разница между Swing и AWT заключается в том, что компоненты Swing начинаются с буквы J. Пример: JFrame против Frame и т. Д.

person SnakeDoc    schedule 27.06.2014
comment
Верен ли этот ответ 5 лет спустя? - person Evorlor; 08.10.2019
comment
@Evorlor Да. Если даже не более того. JavaFX сильно вырос и превратился в собственный проект с большой корпоративной поддержкой. Однако следует отметить, что в наши дни многие люди могут предпочесть создание веб-приложения вместо настольного приложения - JavaFX также может помочь в этом. - person SnakeDoc; 08.10.2019

Что ж, Intellij IDEA использует Swing для своего пользовательского интерфейса, поэтому я бы не сказал, что он устарел. Конечно, я действительно думаю, что его можно было бы коренным образом переработать (читайте: что-то, не полное спагетти-кода).

person hanetzer    schedule 27.06.2014
comment
Swing не обязательно должен содержать спагетти-код. Это дизайн приложения. Spring MVC или даже EJB 3.x могут быть так же полны спагетти-кода. Я видел красивые проекты, сделанные с помощью качелей, как снаружи, так и изнутри. Все, что мир JS пытается реализовать сейчас в своих одностраничных приложениях, было сделано десятилетия назад с помощью Swing. Он очень объектно-ориентированный и реактивный при загрузке. - person dieterh; 26.06.2017

Абсолютно да. Устаревшие приложения Swing по-прежнему поддерживаются и улучшаются. Альтернативы этому нет. И если вы создаете такие приложения, как IDE, SWING по-прежнему предпочтительнее. Новое приложение, конечно же, будет иметь веб-интерфейсы, но это действительно зависит от характера приложения. Нет общих правил.

person TheMonkWhoSoldHisCode    schedule 27.06.2014
comment
Я бы подумал, что Eclipse RCP (SWT) или даже платформа Netbeans (Swing) были бы лучшим вариантом для создания IDE вместо Swing. - person Mister; 27.06.2014
comment
@Mister, это будет зависеть от проекта, поскольку использование любого стороннего Windowing Toolkit (например, SWT) приводит к дополнительным зависимостям, раздуванию и возможным осложнениям и т. Д. - person SnakeDoc; 27.06.2014
comment
@SnakeDoc Какие возможные осложнения? Платформы netbeans и eclipse доказали свою стабильность, и на них основано множество приложений. - person rpax; 12.12.2015
comment
@rpax У каждого набора оконных инструментов есть свои проблемы, которые разработчик должен учитывать. большинство людей выучат его очень хорошо. - person SnakeDoc; 14.12.2015