什么是Java对WPF的答案?

时间:2008-11-12 20:01:40

标签: java .net wpf

我目前主要是一个.Net人,但我最近一直在玩Java - 探索那里有什么。

现在我正在寻找WPF的Java等价物。我知道我可以找到一个或两个OpenGL库,但这并不像WPF系统那么丰富或简单。

3 个答案:

答案 0 :(得分:36)

我认为JavaFX,Swing,Java2D和Java基于浏览器的JRE的组合构成了WPF提供的解决方案:

  • JavaFX应用程序(实际上,任何Java应用程序)都可以在浏览器或桌面上运行
  • JavaFX提供高端视频支持
  • JavaFX提供脚本动画和视觉特效
  • Swing提供UI功能,可以在Java和JavaFX中使用
  • Java2D,它为所有绘图任务(包括Swing)提供基础,利用硬件加速和DirectX支持
  • 桌面或浏览器上的JRE可将Java应用程序部署到多个环境(包括其他屏幕,如机顶盒或手机)

答案 1 :(得分:19)

功能性WPF比任何JavaFX,Swing,AWT或Java2D都更全面。 毕竟,这是设计目标,将与演示相关的所有内容整合到一个库中。 在性能方面,除了Java是hungry hog

的内存使用情况之外,它们大致相同

答案 2 :(得分:18)

我编写了Aqua,Macintosh Quick Draw,Windows GDI和GDI +,Qt和.NET Winforms,WPF是迄今为止我使用过的最复杂的API。虽然它具有非常强大的功能集,比以前的技术(如swing)更好,但它与WPF无法匹敌。它解决了困扰图形编程的一些主要问题。如果您来自HTML / JS世界,它很容易学习,但如果您来自传统的图形编程世界,那么这是一个重大的范式转变。无论如何,它比CSS / HTML / JS更容易学习。这与其他图形编程环境困扰的遗留概念完全不同。

WPF的最大优势在于它的分辨率是独立的。它可以跨设备进行扩展,几乎不需要修改。拍摄屏幕版本的图纸并将其输出到高分辨率打印机而不会​​丢失分辨率几乎不需要任何工作。

它还支持事件触发。 UI元素可以响应其他UI元素或应用程序代码的事件,从而使动态界面成为可能。它使得代码与UI之间的分离变得容易,即使是HTML / JS也无法实现。元素可以广播和收听事件并做出相应的响应。

另一个优势是它高度面向对象和声明能力的API。使用XAML,您可以通过几行快速高效地构建工作界面。与HTML / JS不同,它更容易学习,其输出更具可预测性和效率。您甚至可以在代码中完全编写WPF,但通常不值得获得较小的性能。更好的方法是将Xaml编译为.NET代码。

此外,与JavaFX相比,WPF可用的工具非常广泛。有很多工具,包括Expression Blend。还有许多用于采用矢量图形格式(如SVG和Adobe Illustrator)并将其转换为XAML的工具。现在,设计师和程序员可以以之前很难做到的方式协作进行桌面出版。

总之,WPF非常全面,Mono团队选择不将其移植到Mono代码库。他们声称完全实现合理的功能集需要很多年。如果存在与Mono兼容的WPF版本,那么它将使.NET成为事实上的跨平台应用程序框架。事实上,它甚至可以取代HTML / CSS,因为它更强大,更容易让人头脑发热。不幸的是,微软没有看到支持跨平台的WPF的商业案例。这就是SilverLight / WPF输给HTML5 / JS的原因。由于这个错误,他们现在不仅被迫将网页的一部分移交给HTML 5 / JS。