与吉斯一起摇摆

2022-09-02 22:29:22

我已经将 Guice 用于我的应用的数据模型,到目前为止,我对它非常满意。但是,GUI部分即将成为泥球大球。我发现在这里很难使用Guice,因为Swing组件和模型是紧密耦合的,并且经常强制特定的初始化顺序。

我的应用程序基本上由一个带有大量过滤器的标头,一个中央且相当复杂的JTree组件以及许多操作(例如来自JPopup),菜单,对话框,向导等组成。主要问题是我在组件和操作之间有很多耦合(例如,复杂的验证,树更新......)。你能给我一些建议,如何使用Guice构建这个GUI吗?

我知道像GUTS这样的库,但文档真的很薄,我宁愿避免在我的项目中添加另一个依赖项并学习另一个API(例如,我不知道Swing应用程序框架)。


答案 1

我宁愿建议一个合适的MVC,甚至更好的表示模型 - 视图 - 控制器。正确分离你的代码,Guice就会自然而然地适应。例如:

视图类应具有一个生成部分,用于绘制静态内容(标签、树、按钮等)并更新对表示模型中的更改做出反应的代码。所有操作侦听器都应调用控制器上的一些代码。表示模型和控制器都应该由 Guice 注入,就像所有其他依赖项一样。

这种组织将允许通过用一些测试代码替换View来轻松测试,这些代码将侦听表示模型中的更改并调用控制器上的操作。


答案 2

我建议看看Guts-GUI。它是一个基于 Guice 依赖关系注入模型的 Swing UI 框架。


推荐