我正在用几个面板组装一个GUI。在一个面板中,有组件供用户输入各种参数。在另一个面板中,有按钮和一个基于数据输出绘图的位置使用用户输入生成。
我现在让所有不同的部分独立工作,我只是希望他们互相交谈!!
当我点击一个按钮时,我想获取所有用户输入并将它们组合到生成数据集并绘制它。然后,另一个按钮将相同的数据写入文件。
我有代码单独实现所有组件,代码写入数据用于从数据生成绘图的文件和代码。 所有这些都工作正常。
我认为我可以使用操作/更改事件来获取参数和将它们分配给数组列表。然后使用此数组列表生成数据。
我发现很难计划一种方法来解决这个问题。
目前,我在事件处理程序中使用getset方法来设置参数级别数组列表的一个特定实例,我想将此实例传递到另一个类中以生成数据,但不知道如何使其可访问。
我希望我在这里提供了足够的信息。如果有人有任何对此的想法将不胜感激。
我认为解决您的问题的结构化方法是应用 MVC 模式。以下是我认为一篇关于使用Java的模型-视图-控制器(MVC)的开创性文章。
Java SE Application Design with MVC by Robert Eckstein,
这是另一个示例代码。
至于从一个面板获取参数并将其传递给另一个面板,您可以使用命令模式。该模式的作用基本上是将方法执行所需的所有信息(类的实例、参数等)封装到一个命令中。然后,可以在应用程序中传递此命令,从而简化执行方法的方式。
顺便说一下,一本关于设计模式的好书,我真的很喜欢是Head First Design Pattern。
编辑:我只想添加一些链接,讨论 MVC 和其他一些我认为有用的 GUI 架构:
- GUI 架构 Martin Fowler
- 构建您自己的复合应用程序块系列:UI 架构、模式和 WinForm 示例
- MVVM vs MVP vs MVC:差异
这似乎是MVC模式应用的一个很好的例子:http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
另一个很好的资源是这本书的第二章:http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612/ref=sr_1_1?ie=UTF8&qid=1334437965&sr=8-1