Я использовал Java Swing для некоторых настольных приложений. Но я не так часто использовал другие GUI-структуры, поэтому не могу их сравнить.
Определенно есть некоторые вещи, которые мне нравятся в Swing, и некоторые, которые мне не нравятся, но это ситуация практически со всем.
Каковы самые большие недостатки в среде Java Swing GUI?
frameworks
gui
swing
Jonas
источник
источник
Ответы:
Вы должны установить Java где-нибудь. Это верно для всех структур GUI, конечно, но у Java есть восприятие 2-тонной гориллы. Это стало намного лучше, но в те ранние дни Java-апплетов многие люди были потрясены. Если вам нужно только запустить одно приложение, вам нужно много времени, чтобы поддерживать его в актуальном состоянии с помощью исправлений безопасности и тому подобного. У всех должен быть Flash для YouTube. Платформа .Net устанавливается за кулисами, и у каждого в браузере включена поддержка JavaScript. Java - это обычно дополнительная вещь.
Несмотря на то, что это что-то вроде однократной записи, запускается где угодно, вы все равно обнаруживаете, что в Mac OSX нет этой новомодной вещи, которую вы хотите использовать, или один клиент отказывается обновить свой linux-мандрагор после JRE 1.4.
Как разработчик, вы должны думать о потоках. И это сложно, так как многопоточность возможна, но Swing делает вид, что все однопоточные. Но тогда половина библиотек, в которых вы работаете, имеют некоторую степень многопоточности и предполагают, что вы знаете о EDT invokeLater, и это навязывает много уроков трудным путем.
Опыт Swing не легко переносится на другие виды разработки пользовательского интерфейса. Например, если вы мастер в таблицах в .css, вы будете полностью захвачены Jtables, рендерами, редакторами и т. Д.
В общем, основная проблема с Swing заключается в том, что он не соответствует тому, как он продавался. Это совершенно адекватная технология для многих случаев использования, но те первые 5 или 6 лет были полны ужасных реализаций и ужасных апплетов. И теперь это старая технология - на Web 3.0 или что-то еще.
Все, что сказал, мне нравится Swing и думаю, что плюсы обычно перевешивают минусы, когда вам нужно то, что он предлагает. Тем не менее, веб-интерфейс стал настолько повсеместным, что многим пользователям будет легче работать с веб-приложением, чем с самым модернизированным и удивительным свинг-приложением. И есть отличные приложения Swing, но они не кажутся мейнстримом.
источник
Jonas,
Swing обобщает вашу базовую архитектуру, чтобы предоставить вам независимый от платформы пользовательский опыт. Единственным тяжеловесным компонентом (предоставляемым ОС) является контейнер JFrame, а остальное в значительной степени обрабатывается Takeit Swing. AWT, с другой стороны, просит ОС нарисовать все свои компоненты пользовательского интерфейса, что означает, что он быстрее во многих отношениях, чем использование собственных компонентов пользовательского интерфейса, специфичных для данной ОС. SWT пытается достичь среднего уровня, для различных стандартных компонентов, таких как кнопки и метки (которые доступны в большинстве ОС), он позволяет ОС справиться с этими и для других специализированных компонентов, SWT будет обрабатывать создание для вас.
При этом я могу обрисовать недостатки.
(1) Поскольку инструментарий создает и отображает компоненты для вас, а не запрашивает ОС, вы не получаете преимущества от скорости встроенных компонентов, предоставляемых ОС.
(2) Пользовательский интерфейс не является особенно атрибутивным, поскольку он выглядит чуждым большинству платформ ОС в отношении того, как вы выглядите и чувствуете.
(3) Некоторые из менеджеров компоновки, например, GridBadLayout и т. Д., Могут быть упрощены. Я потерял счет из числа проектов, над которыми я работал, где люди обернули GridBagLayout в какой-то специальный код, чтобы получить более простой способ его использования.
Я бы посоветовал вам написать простое приложение на AWT, Swing и SWT и сравнить подходы к разработке и конечный продукт между ними, а затем просмотреть различные комментарии других разработчиков и решить, какое из них лучше всего подходит. Я работал с Swing в течение многих лет и использовал неприязнь к SWT, но я понял, что Swing намного сложнее, чем он должен быть по сравнению с другими фреймворками.
источник
Swing медленный (плохая производительность), жесткий / неуклюжий в использовании (по сравнению со многими другими) и на некоторых платформах выглядит не очень хорошо, на самом деле очень плохо.
источник