Подтвердить что ты не робот

Как я могу создать "современное" настольное приложение Java?

Аналогичные вопросы к этому задаются периодически, но многие из этих ответов устарели.

Мне нужно создать кросс-платформенное настольное приложение на Java с графическим интерфейсом сопоставимого качества с современными настольными приложениями.

Swing - это выбор по умолчанию, но мне еще предстоит встретить приложение Swing, которое не выглядело, по крайней мере, довольно устаревшим и неуклюжим (субъективно, я знаю, но с GUI трудно избежать эстетических суждений).

Я заметил, что новый клиент Bitcoin теперь использует QT с привязками Java и имеет привлекательный пользовательский интерфейс, но это имеет тот недостаток, что он не является более чистой Java.

Значительная часть того, что я нахожу при поиске библиотек, связанных с Swing, составляет 5 лет или старше, хотя эстетика настольных приложений значительно изменилась с тех пор.

Если вам нужно было создать настольное приложение Java с нуля, что бы вы использовали для его графического интерфейса?

4b9b3361

Ответ 1

Посмотрите на изменение Look and Feel вашей Java-программы. Это позволяет вам настроить общую "тему" ​​вашей программы. Здесь - информация об изменении LAF.

Ответ 2

Я также могу предложить вам новый LaF для изучения - WebLaF. В настоящее время я работаю над этим, чтобы принести много возможностей пользовательского интерфейса и сделать работу с Swing намного проще для всех, просто используя основные функции библиотеки WebLaF.

Несколько примеров, показывающих, как выглядят некоторые из компонентов WebLaF: Some of WebLaF components

Некоторые из основных целей, на которые я нацеливаюсь:

  • Отличный и современный L & F с поддержкой всех компонентов Swing.
  • Широкий набор дополнительных компонентов, которые вы не найдете в стандартном Swing
  • Большой набор классов Utility, которые помогут вам написать код

Библиотека WebLaF также предлагает несколько других преимуществ и уникальных возможностей:

  • Это проект с открытым исходным кодом (лицензированный GPLv3)
  • Простая компоновка компонентов с использованием системы живописцев (в частности, с файлами с 9 патчами).
  • Быстрая и простая настройка стиля "Веб" по умолчанию
  • Множество функций для ускорения и упрощения создания интерфейса приложения Swing.

Вы можете попробовать демонстрационное приложение чтобы узнать, является ли оно современным и достаточно простым:)

Ответ 3

Вы просмотрели JavaFX 2.0? Он разработан, чтобы легко взаимодействовать с Swing и имеет множество современных "хороших" элементов управления.

Кроме того, как упоминает lrAndroid, приложение Swing может выглядеть как родное приложение, если вы установите систему с помощью:

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

Ответ 4

Современные рамки Javascript (ExtJS, Dojo и т.д.) предлагают одинаковое богатство виджетов или больше (например, такие как Excel, например, сетки), более широкий набор L & F и обычно лучше подходят для ОС пользователя, Пользователи также очень удобны в своих браузерах и, эй, "современные вещи" находятся в Интернете, а современная сеть сегодня - HTML + Javascript.

Накладные расходы на преобразование приложения в "web like" минимальны. Встроенный Jetty может оставаться очень маленьким, а дисковое пространство стало намного меньше.

Есть дополнительные преимущества, идущие вниз по этому маршруту для будущих изменений приложения.

  • Внезапно настольное приложение становится серверным приложением, к которому можно получить доступ с другого рабочего стола. В течение нескольких недель мы смогли продвинуть настольное приложение на "портал".
  • Переписывание приложения в терминах (Ajax) веб-сервисов обеспечивает легкий переход на создание полного пакета служб REST (или SOAP...). Приложение может быть затем интегрировано в другие приложения, легко отслеживаться извне и т.д.
  • Поддержка других устройств (смартфонов, планшетов,...) становится намного проще, концентрируясь только на слое пользовательского интерфейса.
  • По мере того, как приложение растет, разделение проблем становится более чистым; разработчикам, работающим с пользовательским интерфейсом, не нужно возиться с низкоуровневым кодом.
  • Есть много отличных дизайнеров и разработчиков JS/HTML, которые не программируются на Java.

ИЗМЕНИТЬ

Через 3 года это стало чрезвычайно простым благодаря Electron

Ответ 5

Попробуйте выполнить одно из следующих действий:

Ответ 7

Я знаю, что этот вопрос старый, но если вы не хотите использовать FX и все еще хотите использовать Swing, попробуйте MacWidgets, я использовал его в нескольких проектах. Он очень легкий и выглядит великолепно. Ниже представлен старый проект, над которым я работал, со временем я улучшил использование macwidgets и теперь использую его внутри своей компании.

http://www.digitalhand.net/projects/jdataanalyzer/mainGUI.png

Ответ 8

QT довольно обширен, но также очень большой (раздутый) и сложный. Кроме того, в SWT-библиотеке используется, например, открытый офис. SWT использует собственные виджеты пользовательского интерфейса для кнопок, таблиц и т.д., Где Swing имитирует их.

Тем не менее, тенденция явно направлена ​​на создание богатых клиентских приложений для браузера с использованием HTML и Javascript. За последние несколько лет они достигли огромных успехов.

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

Javascript теперь имеет мощные библиотеки с jQuery и множество плагинов. Существуют даже такие языки, как Coffeescript, которые можно использовать для создания Javascript с более простым и мощным синтаксисом.

Также нет необходимости подключать такие приложения к внешнему серверу. На клиентском компьютере могут быть установлены локальные серверы небольшого размера (например: jetty, node.js,...) и базы данных (SQLite, H2,...) для создания полностью автономного приложения.