Java:从GUI获取值

时间:2011-10-22 18:10:09

标签: java oop design-patterns

在我的应用程序中,用户可以为一些参数选择“分发类型”,然后创建Graph并向他显示。这些分布有3种不同类型,每种分布都有自己的参数(如alpha,beta,概率等)。每个参数都可以具有这些分布中的任何一个。

这是截图,清楚地表明,我想要描述的内容:

screenshot http://i52.tinypic.com/29cs11h.jpg

分发选项包含在CardLayout中,由combobox控制。

当用户按下按钮时,我需要为分发实例化适当的域对象。现在,我只是将ComboBox项目(即enum)和CardLayouted面板传递给选择适当子面板并实例化正确对象的工厂。但是传递gui对象似乎是错误的,也使得工厂在任何其他情况下都无用。

但我想不出更好的实例化正确对象的方法。可能只有一个想法:

  • 让CardLayouted小组决定哪个面板是ontop并实例化 适当的对象请求。我不需要这个工厂。但gui对象可以做这种逻辑吗?如何以正确的方式委托给域名?

所有建议都会受到很多赞赏!

1 个答案:

答案 0 :(得分:2)

Swing通常支持MVC并将数据从域对象推送或拉出到输入/显示控件。我要做的是:

使用“空白”域对象作为GUI模型实例化放入CardLayout的面板。 (或者某种可以从另一层检索模型的定位器。)然后在输入组件上挂接更改通知,当输入中的值发生更改时,这些通知将更新域对象。

然后,当涉及到持久化域对象时,只需从表单面板中检索它。

如果需要在两个控件中显示相同的模型值,它们应该共享相同的模型。如果需要对从代码的较低层显示的对象进行更新,则应在模型上执行更新,而不是在域对象之外执行更新。