2012-11-18 61 views
5

是否有Java替代這些技術? 我發現大部分使用的數據綁定功能和INotifyPropertyChanged(以及容器和排序元素),但缺乏.NET的跨平臺使我想到Java。 你有什麼建議?有沒有同等的產品?一個實現XAML?Java MVVM和WPF替代

+0

有人可能會爭辯說WPF最初是J2EE的無恥剽竊。就像 。Net本身就是Java的無恥剽竊(只是使用「static void Main()」和「string」,而不是「static void main()」和「String」)。恕我直言... – paulsm4

+7

它可以爭辯,但不會回答被問的問題會嗎? –

+2

WPF作爲J2EE的副本?你在吸菸什麼? – Paolo

回答

7

技術(WPF)

如果你正在尋找一個替代WPF爲Java平臺,你應該看一看JavaFX

該技術是非常相似的WPF在以下幾個方面:

  • 的應用程序的用戶界面是由對象的樹叫由Node對象(這類似於WPF視覺場景圖由UIElement對象組成的樹)。
  • Pane節點及其衍生物在概念上與WPF佈局面板相似。
  • 用戶界面可以使用類似於XAML的名爲FXML的標記來創建。
  • JavaFX提供的對象表示支持綁定和更改通知的屬性(思考依賴項屬性)。與依賴屬性不同,它們不受用戶界面技術的約束,因此您的模型類可以使用它們。
  • 用戶界面可以使用CSS進行樣式化。

看看我對how does JavaFx compare to WPF問題的回答,它提供了WPF和JavaFX更詳細的(但仍然是高級別的)比較。

的設計圖案(MVVM)

MVVM模式是presentation model圖案的一個特例。可以在JavaFX中創建這種變體,因爲平臺提供了支持綁定的屬性,並且演示模型基本上是封裝模型狀態並提供對該狀態起作用的操作的對象。

雖然使用了模型 - 視圖 - 演示者模式的變體,我所見過的大多數例子都是這樣。開箱即用JavaFX支持非常簡單的MVP結構,其中每個視圖都與「控制器」類相關聯。這對於小型應用程序來說很好,但並不能真正提供很大的關注點。

2

也許你應該留意精彩的MVVMFX Framework。基於WPF和JavaFX之間的類似描述性UI聲明(FXML/XAML),他們試圖採用WPF開發的最佳實踐。

當然,它支持數據綁定概念併爲視圖,視圖模型和模型之間的通知實現必要的接口。 UI和它的UI邏輯(後面的代碼)是用fxml文件(用Scene Builder創建的)和強制性Java類來實現的。有許多很好的例子,不難理解它們的概念,因爲它是對最純粹的MVVM模式的嚴格實現。您所需要的只是在您的項目依賴關係中建立框架。