Как создать "современное" настольное Java-приложение? [закрыто]
Проблема с выбором GUI для кроссплатформенного Java приложения
Я разрабатываю кроссплатформенное десктопное приложение на Java и столкнулся с проблемой выбора подходящего GUI решения, которое смогло бы соперничать по качеству с современными десктопными приложениями.
Хотя Swing является стандартным выбором для разработки GUI в Java, я наблюдаю, что большинство приложений на его основе выглядят устаревшими и неуклюжими (хотя это может быть субъективным мнением, но оценка эстетического восприятия интерфейсов зачастую затруднена).
Я заметил, что новый клиент Bitcoin теперь использует QT с Java биндингами, и действительно обладает привлекательным пользовательским интерфейсом, но это имеет недостаток: он перестает быть чистым Java приложением, что может вызывать вопросы совместимости.
Кроме того, многие библиотеки, связанные с Swing, которые я нахожу в интернете, имеют возраст более 5 лет, несмотря на то, что эстетика десктопных приложений существенно изменилась с тех пор.
В связи с вышеизложенным, я хочу узнать: если бы вам нужно было создать десктопное приложение на Java с нуля, какой бы инструмент для создания GUI вы бы выбрали?
1 ответ(ов)
QT довольно обширен, но также и достаточно громоздок и сложен. Существует также библиотека SWT, которая используется, например, в OpenOffice. SWT использует нативные виджеты интерфейса для кнопок, таблиц и т. д., в то время как Swing их эмулирует.
Однако очевидно, что тренд смещается в сторону разработки богатых клиентских приложений для браузера с использованием HTML и JavaScript. Оба этих инструмента значительно продвинулись за последние несколько лет.
HTML5 специально нацелен на создание богатых клиентских приложений с такими функциями, как улучшенные формы и локальные базы данных для поддержки сценариев работы в оффлайн (обратите внимание, что эта последняя функция еще не стандартизирована, но она реализована во всех современных браузерах).
JavaScript теперь обладает мощными библиотеками, такими как jQuery и множеством его плагинов. Существуют даже языки, такие как CoffeeScript, которые могут использоваться для генерации JavaScript с более простым и мощным синтаксисом.
Также нет необходимости, чтобы такие приложения подключались к внешнему серверу. Небольшие локальные серверы (например, Jetty, Node.js и т. д.) и базы данных (SQLite, H2 и др.) могут быть установлены на клиенте, что позволяет создать полностью автономное приложение.
Использование нескольких JFrames: хорошая или плохая практика? [закрыто]
Что делает SwingUtilities.invokeLater?
SwingUtilities.invokeLater: Вызов кода в потоке событий Swing
Инициализация ArrayList в одну строчку
Создание репозитория Spring без сущности