Каков ответ Java на WPF?

На данный момент я в основном человек .Net, но в последнее время я немного поигрался с Java - изучаю, что там есть.

Теперь я ищу Java-эквивалент для WPF. Я знаю, что могу найти там одну или две библиотеки OpenGL, но на самом деле это не так богато и просто, как система WPF.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
45
0
25 379
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Я думаю, что сочетание JavaFX, Swing, Java2D и JRE на основе браузера Java составляет решения, которые предоставляет WPF:

  • Приложения JavaFX (фактически, любое приложение Java) могут работать в браузере или на рабочем столе.
  • JavaFX обеспечивает высококачественную поддержку видео
  • JavaFX обеспечивает создание сценариев анимации и визуальных спецэффектов.
  • Swing предоставляет возможности пользовательского интерфейса и может использоваться как в Java, так и в JavaFX.
  • Java2D, который обеспечивает основу для всех задач рисования (включая Swing), использует преимущества аппаратного ускорения и поддержки DirectX.
  • JRE на рабочем столе или в браузере позволяет развертывать приложения Java в нескольких средах (включая другие экраны, такие как телеприставки или телефоны)

Нет настоящей поддержки 3D, особенно для языка шейдеров, который есть в DirectX HLSL и OpenGL SL. Кроме того, любая текущая поддержка JavaFX в IDE не может сравниться с мощью конструктора XAML Expression Blend и Visual Studio 2008 и Visual Studio 2010 Cider (конструктор WPF в Visual Studio).

Eriawan Kusumawardhono 01.10.2011 13:34

Так же гладко ли он обрабатывает привязку данных?

Jason Ridge 27.07.2012 13:26

Дает ли кто-нибудь из них ответ на шаблоны WPF?

MasterMastic 23.07.2013 03:16

WPF с точки зрения функций является более всеобъемлющим, чем любой из JavaFX, Swing, AWT или Java2D. В конце концов, это и было целью дизайна - собрать все, что связано с презентацией, в единой библиотеке. С точки зрения производительности они примерно одинаковы, за исключением использования памяти, где Java - это голодный боров.

Я запрограммировал Aqua, Macintosh Quick Draw, Windows GDI и GDI +, Qt и .NET Winforms, и WPF, безусловно, является самым сложным API, который я использовал. Хотя он имеет довольно мощный набор функций, который лучше, чем предыдущие технологии, такие как Swing, он не подходит для WPF. Он решает некоторые серьезные проблемы, которые мешали графическому программированию. Если вы пришли из мира HTML / JS, этому легко научиться, но если вы пришли из традиционного мира графического программирования, это серьезный сдвиг парадигмы. Тем не менее, его намного легче изучить, чем CSS / HTML / JS. Это полный отход от устаревших концепций, которые преследуют другие среды графического программирования.

Самая большая сила WPF в том, что он не зависит от разрешения. Он может масштабироваться на разных устройствах практически без изменений. Чтобы взять экранную версию рисунка и вывести ее на принтер с высоким разрешением без потери разрешения, требуется немного усилий.

Он также поддерживает запуск событий. Элементы пользовательского интерфейса могут реагировать на события других элементов пользовательского интерфейса или на код ваших приложений, что делает возможными динамические интерфейсы. Это позволяет легко отделить ваш код от пользовательского интерфейса, чего не может достичь даже HTML / JS. Элементы могут транслировать и прослушивать события и соответственно реагировать.

Еще одна сильная сторона - его объектно-ориентированный и декларативный API. Используя XAML, вы можете легко и быстро создать рабочий интерфейс с помощью нескольких строк. В отличие от HTML / JS, его легче изучить, а его вывод гораздо более предсказуем и эффективен. Вы даже можете полностью запрограммировать WPF в коде, но обычно это не стоит незначительного прироста производительности. Лучше скомпилировать ваш Xaml в код .NET.

Кроме того, набор инструментов, доступных для WPF, очень обширен по сравнению с JavaFX. Доступно множество инструментов, включая Expression Blend. Существует также множество инструментов для преобразования форматов векторной графики, таких как SVG и Adobe Illustrator, в XAML. Теперь дизайнеры и программисты могут сотрудничать в области настольных издательских систем, что раньше было очень сложно.

Таким образом, WPF настолько всеобъемлющий, что команда Mono решила не переносить его на базу кода Mono. Они утверждали, что для полной реализации разумного набора функций потребуется много человеко-лет. Если бы существовала Mono-совместимая версия WPF, она бы де-факто превратила .NET в платформу кроссплатформенных приложений. Фактически, он может даже заменить HTML / CSS, поскольку он намного мощнее и проще в использовании. К сожалению, Microsoft не нашла экономического обоснования для кроссплатформенного WPF. Вот почему SilverLight / WPF проиграли HTML5 / JS. Из-за этой ошибки они теперь вынуждены передать HTML 5 / JS не только Интернет, но и часть своего рабочего стола.

Спасибо за развернутый ответ!

Vova 28.03.2014 10:17

Большая ошибка Microsoft.

TheMentor 20.01.2015 12:12

WPF предназначен только для вдохновителей, а не для людей со средним IQ, таких как я. Пора переходить на открытый исходный код.

AnjumSKhan 17.04.2015 10:41

Другие вопросы по теме