На чём можно написать графический интерфейс desktop приложения на Java

179
29 ноября 2021, 15:50

Кроме стандартной swing, в Java ранее была библиотека JavaFX, которую убрали в последних версиях. Поэтому хотел бы спросить как сейчас создают интерфейс десктопного приложения на Java используют swing, JavaFX или что-то еще может быть новое есть? Какой способ наиболее популярный и лучший?

Answer 1

Сейчас идут в основном одним из двух путей:

  1. Используют JavaFx. Это отличный фреймворк и его убрали из JavaSE не потому что он чем то плох, а потому что изменилась сама концепция JavaSE где стараются избавиться от всего что нельзя причислить к core для Java. Сейчас он живет и активно развивается, по нему очень много мануалов в интернете и он прошел проверку временем.
  2. Пишут приложения под веб и с использованием веб фреймворков (например Spring MVC) и компилируют все это в JavaScript (гуглите проект Electron). Это ваш случай если вы например имеете хороший опыт при работе с веб приложениями, JS и верстке. Фактически десктоп в этом случае это клиент, сервер и браузер (хромиум) под одной оберткой. Этот метод часто критикуют в том числе за производительность, но тем не менее он уже очень популярен за счет простоты и возможности переиспользовать свои навыки работы с вебом.
Answer 2

Де факто для Java на desktop стандартом является swing.

наиболее популярный и лучший

Я Вас разочарую. Java для Desktop решений вообще не популярен и очень давно не развивается.

На Java сейчас в основном пишут либо мобильные приложения под Android (и то здесь его уже очень сильно теснит Kotlin), либо крупные энтерпрайз системы для таких же крупных корпораций, которые работают на серверах и им GUI как таковой даже не нужен. Для пользователя делают отдельное приложение (как правило с web интерфейсом), но основная часть функционала всё равно скрыта под капотом серверной части.

Answer 3

1) AWT - уже объявлен умершим

2) Swing уходит в прошлое. К сожалению, Swing так и не выдержал проверку временем. Правда, есть огромное количество софта написанного на Swing, так что умрет он не скоро.

3) На сцену вступает (именно так, только-только вступает) JavaFX

4) SWT - IBM'овская либа (опенсорсная). Хороша. Весь Eclipse написан на ней, да и еще много разного софта (например Vuze/Azureus написан на нем) - основное преимущество, что виджеты реализованы на C++ - посему работает быстро (очень быстро).

По сухому остатку, рекомендовал бы писать строго на JavaFX, ну если требуется быстрый интерфейс, то на SWT. Если присоединяетесь к существующему Swing проекту, то придется учить Swing.

Answer 4

Все тут нахваливают FX, в принципе там всё супер, в купе с "сцен билдером". Но когда дело доходит до многопоточки... без бутылки не разберешься.

READ ALSO
Программное изменение цвета картинки

Программное изменение цвета картинки

В первой активити программно устанавливаю цвет картинки

123
Как можно отправлять координаты каждые 5 секунд?

Как можно отправлять координаты каждые 5 секунд?

Вопрос такой, как можно сделать что-бы на сервер отправлялись мои координаты раз в 5 секунд

292
Android EditText(TextView) декорация текста

Android EditText(TextView) декорация текста

Мне нужно чтобы когда в EditText пользователь вводил данные (например 100000000 или +712361000000) то они разделялись точками или пробелами (на выходе что-то...

135
Программа уходит в бесконечный цикл

Программа уходит в бесконечный цикл

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

73