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 оставит менеджеров сущностей открытым и создаст основные головные боли и ошибки позже, если ваше приложение должно использовать более одного потока.