Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:从GUI获取值_Java_Oop_Design Patterns - Fatal编程技术网

Java:从GUI获取值

Java:从GUI获取值,java,oop,design-patterns,Java,Oop,Design Patterns,在我的应用程序中,用户可以为一些参数选择“分布类型”,然后我创建图形并将其显示给他。这些分布有三种不同的类型,每种类型都有自己的参数(如α、β、概率等)。每个参数可以具有这些分布中的任意一个 下面是一个屏幕截图,我想说明的是: 分发选项包含在CardLayout中,由combobox控制 当用户按下按钮时,我需要为发行版实例化适当的域对象。现在,我只是将ComboBox项(即enum)和CardLayouted面板传递给工厂,工厂选择合适的子面板并实例化正确的对象。但传递gui对象似乎是错误

在我的应用程序中,用户可以为一些参数选择“分布类型”,然后我创建图形并将其显示给他。这些分布有三种不同的类型,每种类型都有自己的参数(如α、β、概率等)。每个参数可以具有这些分布中的任意一个

下面是一个屏幕截图,我想说明的是:

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

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

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

  • 让CardLayouted面板决定哪个面板是ontop并实例化 应要求提供适当的物品。我不需要任何工厂。但是gui对象可以执行这种逻辑吗?我如何才能以适当的方式委托给域

所有建议都将不胜感激

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

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

然后,在持久化域对象时,只需从表单面板检索它


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

我自己说得再好不过了!1+