Для Java достаточно много фреймворков с графическим интерфейсом, но что считается сегодняшним фреймворком?
Следующее - мое понимание различных структур, пожалуйста, поправьте меня, если я неправ. Это очень неопределенный набор вопросов, но я все еще считаю его ценным для всех, кто задумывается о создании приложений с богатым графическим интерфейсом.
Является самой основой качелей, он хорошо работает, но не хватает продвинутых компонентов. Если вы намереваетесь создавать многофункциональные приложения, AWT, вероятно, не тот путь. Однако для небольших приложений графического интерфейса, которые не требуют богатых пользовательских интерфейсов. Это может идеально подойти, поскольку это проверенная и проверенная структура.
На основе AWT, как указано выше. В зачаточном состоянии он считался медленным и глючным и заставил IBM создать SWT для Eclipse. Однако с Java 5 (или 6?) Swing стал предпочтительной средой для создания новых приложений. В Swing много богатых компонентов, но в некоторых областях их все еще не хватает. Одним из примеров является то, что не существует полнофункционального компонента TreeTable, который может выполнять сортировку и фильтрацию / поиск.
Созданные IBM для Eclipse, они, казалось, думали, что Swing тогда не подходил для Eclipse. Сам по себе довольно низкоуровневый, и использует родные виджеты платформы через JNI. Это никак не связано с Swing и AWT. Однако их API несколько неуклюжий и не интуитивно понятный. У них есть некоторые продвинутые компоненты, такие как TreeTable. (но я не думаю, что они поддерживают сортировку и фильтрацию из коробки). SWT использует некоторые нативные привязки (через JNI?), И в интернете часто говорят о том, что эта платформа не должна использоваться в сегодняшних проектах. (почему нет?)
Основан на Swing и его миссия - создавать богатые компоненты для свинга. Все еще в разработке. (хотя и не очень активно.) Имеет очень хороший набор компонентов, например, TreeTable. Но TreeTable не поддерживает фильтрацию и сортировку, насколько я знаю. Тем не менее, он поддерживает поиск с подсветкой.
Обратите внимание, что SwingX - это компоненты (AFAIU), которые являются расширениями или композициями существующих компонентов Swing.
JGoodies
Фреймворк, о котором я ничего не знаю ... Каковы его сильные и слабые стороны? Какой набор Jgoodies помимо остальных?
JGoodies OTOH о PLAF и макетах.
Последний флагман Java / Oracle. обещает быть стандартом факто в разработке многофункциональных настольных или веб-приложений.
Он отображает пользовательский интерфейс с использованием Java2D, таким образом сводя к минимуму влияние (IMO, раздутый) наследий Swing и AWT. (@Augustus Thoo)
Кажется, что основное внимание уделяется RIA (многофункциональным интернет-приложениям), но, похоже, его можно применять и к настольным приложениям. И как личный комментарий, выглядит очень интересно! Особенно мне нравится, что это проект Apache.
https://cwiki.apache.org/PIVOT/frequently-asked-questions-faq.html
Оболочка Java для нативной библиотеки qt, написанной на c / c ++. Очень мощный, широко используемый и принятый. Имеет множество компонентов GUI и простой в использовании API.
Итак, чтобы попытаться обобщить немного того, что я спрашиваю:
Скажем, я хотел сегодня создать настольное приложение на Java, которое включает в себя множество продвинутых компонентов, что мне выбрать? И почему?
Какую из этих рамок следует признать устаревшей, а какую - за далекое будущее?
Что сегодня является де-факто-стандартной платформой и какие инструменты вы используете для создания приложений на Java?
Я мог бы сожалеть, что спросил это, но я все равно попробую:
Говорят, что C # / .Net имеет очень хороший набор простых в использовании компонентов, которые можно сгибать в любом направлении. И после некоторого изучения различных Java-фреймворков я не могу сказать то же самое о Java. Почему это? Почему java (самый распространенный язык программирования в мире) не имеет такого же набора компонентов GUI?
Просто java основал свои компоненты графического интерфейса на гораздо более низком уровне, и можно написать все эти сложные компоненты, которые я ищу, но вам придется много, если не всю работу делать самостоятельно?