Java GUI Frameworks - которые есть?

Я в основном разрабатываю Java EE, и теперь я в ситуации, когда мне нужно написать небольшое собственное Java-приложение.

Но tbh Я немного потерял, какие рамки (Swing, SWT и т.д.) есть? Возможна ли быстрая и эффективная работа с одним из них? Может быть, кто-то может предоставить мне некоторые ссылки или поделиться своими впечатлениями.

Ответ 1

Свинг и SWT являются двумя основными кандидатами, да. JavaFX также приходит на ум, но я думаю, что он еще не готов к прайм-тайм: у него не было инструмента для редактирования пользовательского интерфейса, о котором стоит долго говорить, единственный прототип пользовательского интерфейса, который я знаю в реальной жизни, был фиаско...

Swing и SWT - это те, о которых вы могли бы подумать. Основные преимущества Swing:

  • больше независимой от платформы
  • более согласованный с точки зрения производительности
  • лучший свободный пользовательский интерфейс (NetBeans)
  • чрезвычайно гибкий
  • может использоваться в JavaFX

Преимущества SWT:

  • более простой API
  • использует собственные виджеты пользовательского интерфейса, когда это возможно (пользовательский интерфейс больше похож на другие приложения в той же среде)
  • в какой-то момент утверждалось, что это быстрее, чем Swing, хотя это было только для Windows

Достаточно расширенные клиентские среды для обоих (платформа NetBeans и Eclipse RCP), и если вы планируете строить что-то нетривиальное, я бы сердечно предложил вам использовать один из них: вы получаете модульные приложения, механизмы обновления, контекстно-зависимую помощь, согласованные действия над меню, горячие клавиши и панели инструментов, управление окнами и множество других отличных функций бесплатно.

Я работал с Swing и предпочитаю его над SWT, поскольку у него более чистая модель компонента (с SWT вы должны беспокоиться о том, чтобы освобождать ресурсы, поскольку вы используете собственные виджеты), действительно многоплатформенна (SWT работает в Windows, MacOS и Linux, и даже не очень оптимизированы для всех трех), и он более настраиваемый.

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

Я мог бы побрызгать пару ссылок, но вы можете легко найти себя и найти результаты, а не интересовать вас.

Ответ 2

Существуют также графические интерфейсы GUI, которые не написаны на Java, которые могут служить вашим целям. Например, GTK + написан на C, но есть привязки языка к Java. Например, java-gnome.

Я не знаю, насколько это хорошо, но быстрый поиск Google также появился привязки Java для Qt, так что, возможно, это тоже стоит посмотреть в.

Ответ 3

У меня была аналогичная вещь, чтобы сделать некоторое время назад. Я, наконец, остановился на Swing App Framework, потому что он не пытается быть единой структурой, чтобы управлять ими всеми.

В конце концов я написал небольшое приложение, не было никаких сюрпризов, код оказался довольно чистым (включая загрузку в задаче ackground), клиент счастлив, я счастлив.

Он предназначен для обеспечения (украденного из размытия)

  • Application lifecyle, в частности, запуск и завершение работы графического интерфейса.
  • Поддержка управления и загрузки ресурсов, таких как строки, форматированные сообщения, изображения, цвета, шрифты и другие типы, общие для настольных приложений.
  • Поддержка определения, управления и связывания действий, включая действия, выполняемые асинхронно (в "фоновом режиме" ).
  • Постоянное состояние сеанса: поддержка автоматического и выборочного сохранения состояния GUI с одного запуска приложения на другое.

что было именно то, что мне нужно.

Предупреждение: в этой структуре, похоже, мало жизни, поскольку, по слухам, движущая сила покинула Sun/Oracle некоторое время назад.

Обновление: некоторые разработчики разбиты в Project Kenai под названием 'Better Swing Application Framework'. Так что после смерти может быть жизнь после

Ответ 4

Посмотрите Apache Pivot. Он предназначен для более современной архитектуры, чем обычный Swing, который по-прежнему использует Java вместо того, чтобы полностью перейти к JavaFX. Он позиционирует себя как инструментарий RIA, но его можно так же легко использовать для автономных настольных приложений. На веб-сайте:

Apache Pivot - это платформа с открытым исходным кодом для создания богатых интернет-приложений на Java. Он сочетает в себе повышенную производительность и удобство использования современного инструментария RIA с надежностью платформы Java. Сводные приложения пишутся с использованием комбинации Java и XML и могут запускаться либо как апплет, либо как автономный, необязательно офлайн, настольное приложение. [...] Pivot включает дополнительные функции, которые упрощают создание современных графических приложений, включая декларативный интерфейс, привязку данных, эффекты и переходы, а также интеграцию веб-сервисов.

Ответ 5

Я думаю, что JavaFX - хороший выбор, потому что он имеет хороший пользовательский интерфейс и все функции Swing

Ответ 6

В бесплатной NetBeans IDE имеет визуальный инструмент компоновки для Swing и JavaFX.

Ответ 7

GWT также может быть отличным инструментом пользовательского интерфейса для Java-приложения. Поскольку код, сделанный в GWT, такой же, как Java-код. Другое дело, что GWT имеет собственную совместимость браузера браузера. Он имеет богатые виджеты factory, интернационализацию, безопасность и многие другие функции.

Ответ 8

Я рекомендую не использовать инструмент компоновки; код очень трудно читать и поддерживать.

также, если вам нужен доступ к объектам базы данных, тогда netbeans оставит менеджеров сущностей открытым и создаст основные головные боли и ошибки позже, если ваше приложение должно использовать более одного потока.