用于Java GUI应用程序的MVC / MVP / MVVM框架

任何人都可以推荐一个(最好是开源的)框架,用于在Java桌面应用程序中将GUI与模型分离吗?

从根本上将GUI模型与核心Java代码分离最好使用数据绑定库。 也就是说你有你的pojo业务代码,你有GUI组件代码,并且你不想写一大堆逻辑来同时更新它们同时更新视图和实现业务逻辑。 所以不要。 找到您正在使用的GUI小部件的成熟数据绑定框架并了解它; 让屏幕控件与你的pojo代码保持同步。

JGoodies和beanbindings是绑定到OO模型的Swing变体的很好的例子。 JGoodies的核心部分是开源。 如果你去jgoodies网站上的文章,它有关于模式和数据绑定的文章。 虽然每个绑定框架具有不同的类,但是用于编写良好清洁代码的模式在GUI框架和绑定框架之间是可移植的。

如果你下载了现在开源的WindowsBuilderPro工具,那么它在Swing和SWT中都有很好的例子来做好数据绑定。 swing jphonebook示例使用beanbindings库。 WindowsBuilderPro是一个拖放式GUI构建器; 您曾经不得不支付它作为领先的拖放GUI构建器,它与领先的免费GUI库一起使用。 它是由google和opensourced购买的,因此他们可以加强对GWT(Google Web GUI框架)的图形屏幕构建器支持。

该GUI构建器工具具有出色的示例代码,现在是一个出色的开源工具。 它在Swing和SWT GUI库中执行相同的电话簿示例,以演示其拖放式GUI构建器工具的function。 因此,在学习数据绑定的同时,将Swing与SWT进行比较和对比是一种很好的方法。

Java Swing实际上很好地利用了MVC来达到这个目的。

我强烈建议你尝试ZK框架。 直到今天我才发现这样一个srtong框架。 在我的公司,我们使用MVVM等最新模式在几周内应用了新项目。 编程风格与开发经典的“桌面”应用程序非常相似。

PS:我与ZK人没有任何关系。 我只是在使用他们的框架。

从您对Swing是桌面应用的MVC框架的建议的反应来看,我认为您确实需要某种生成器框架来生成更高级别规范的“模型”和“视图”代码。 我(或多或少)熟悉的示例是Eclipse EMF,GEF和相关技术。

Biscotti是一个很棒的框架