我已经将 Guice 用于我的应用程序的数据模型,到目前为止我对它非常满意。然而,GUI部分即将变成一个大泥球。我发现这里很难使用 Guice,因为 Swing 组件和模型是紧密耦合的,并且经常强制执行特定的初始化顺序。
我的应用程序基本上由一个带有许多过滤器的标题、一个中央且相当复杂的 JTree 组件以及许多操作(例如来自 JPopup)、菜单、对话框、向导等组成。主要问题是我有组件和操作之间有很多耦合(例如复杂的验证、树更新……)。你能给我一些关于如何使用 Guice 构建 GUI 的建议吗?
我知道像 GUTS 这样的库,但文档真的很薄,我宁愿避免向我的项目添加另一个依赖项并学习另一个 API(例如,我不知道 Swing 应用程序框架)。
最佳答案
我宁愿建议一个合适的 MVC,甚至更好 Presentation Model - 查看 - Controller 。适本地分离您的代码,Guice 将自然地适应。例如:
View 类应该有一个构建部分来绘制静态内容(标签、树、按钮等)和更新代码以响应演示模型中的变化。所有的 Action 监听器都应该调用 Controller 上的一些代码。 Presentation Model 和 Controller 都应该由 Guice 注入(inject),就像所有其他依赖项一样。
这个组织将允许通过用一些测试代码替换 View 来进行简单的测试,这些测试代码将监听演示模型中的更改并调用 Controller 上的操作。
关于java - 与 Guice 一起 Swing ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5144270/