2008-11-12 2 views
43

Я в основном человек .Net, но в последнее время я играю с Java, изучая, что там есть.Что такое ответ Java на WPF?

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

ответ

35

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

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

JavaFX выглядит многообещающим. – 2008-11-12 20:11:07

+1

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

17

Функциональный WPF является более полным, чем любой JavaFX, Swing, AWT или Java2D. Это была цель дизайна, чтобы привести все, что связано с презентацией в одной библиотеке. точки зрения производительности они примерно одинаковы, за исключением использования памяти, где Java является hungry hog

17

Я программируюсь 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.