5

这些技术是否有 Java 替代品?我发现最常用的数据绑定功能和 INotifyPropertyChanged(以及容器和元素之类的),但 .NET 跨平台的缺乏让我想到了 Java。你有什么建议?有没有同类产品?一种实现 XAML 的?

4

2 回答 2

7

技术(WPF)

如果您正在为 Java 平台寻找 WPF 的替代品,您应该看看JavaFX

该技术在以下方面与 WPF 非常相似:

  • 应用程序用户界面由对象树组成,称为由对象组成的场景图Node(类似于由UIElement对象组成的 WPF 可视化树)。
  • Pane节点及其派生项在概念上类似于 WPF 布局面板。
  • 可以使用类似于 XAML 的称为 FXML 的标记来创建用户界面。
  • JavaFX 提供了表示支持绑定和更改通知的属性的对象(想想依赖属性)。与依赖属性不同,它们不依赖于用户界面技术,因此可以由您的模型类使用。
  • 用户界面可以使用 CSS 设置样式。

看看我对JavaFx 如何与 WPF 进行比较的问题的回答,它提供了 WPF 和 JavaFX 的更详细(但仍然是高级别的)比较。

设计模式(MVVM)

MVVM 模式是表示模型模式的一种特殊形式。可以在 JavaFX 中创建它的变体,因为平台提供支持绑定的属性,并且表示模型基本上是一个对象,它封装模型的状态并提供作用于该状态的操作。

尽管我看到的大多数示例都使用了模型-视图-演示者模式的变体。开箱即用的 JavaFX 支持一个非常简单的 MVP 结构,其中每个视图都与一个“控制器”类相关联。这对于小型应用程序来说很好,但并不能真正提供很好的关注点分离。

于 2012-11-18T21:32:43.813 回答
2

也许您应该关注出色的MVVMFX 框架。基于 WPF 和 JavaFX 之间的相似之处,例如描述性 UI 声明 (FXML/XAML),他们尝试采用 WPF 开发的最佳实践。

当然,它支持数据绑定概念,并为视图、视图模型和模型之间的通知实现必要的接口。UI 及其 UI-Logic(代码隐藏)通过 fxml 文件(使用 Scene Builder 创建)和必需的 Java 类来实现。有很多很好的例子,理解它们的概念并不难,因为它是最纯粹的 MVVM 模式的严格实现。您所需要的只是在您的项目依赖项中建立框架。

于 2015-05-21T07:57:08.827 回答