从操作事件传输字符串



首先,对不起,我不知道如何将我的代码简化为一个小而易于理解的示例,所以我必须解释我想要什么。

我正在为大型班级使用标准 MCV 模型。

public FruitShop() {
model();
view();
controller();
}

ComboBox 是在 view() 中创建的;填充它的 ArrayList 是在 model() 中创建的,并在 controller() 中修改。

我需要传输该组合框的当前选定元素供另一个类使用。为了获得正确的结果,我似乎只能在ActionEvent方法(@Override)或控制器()中使用以下命令。

String fDelete = (String) fruitList.getSelectedItem();

如果我可以从 ActionEvent 中传输它,或者以某种方式将其设置为类的全局,然后将其传输到另一个类,那将是最干净的。我认为在控制器()中处理它是可以的,但我觉得我会在尝试将其传递给ActionEvent时玩得很开心。

请假设我在这种情况下完全没有希望,模糊的提示无济于事。我花了一天多的时间在这个问题上,不得不采取一种糟糕的替代方法(在另一门课中重新创建 ComboBox),但我仍然想很好地做到这一点并理解它背后的概念。然而,我没有时间进行更多研究,所以我寻求您的帮助。

谢谢。

我认为您可能使问题过于复杂。

视图类应处理视图。因此,它应该弄清楚组合框中的内容,并告诉控制器该怎么做。控制器中的方法究竟应该是什么取决于上下文,但我希望以下内容:

操作
  1. 侦听器调用操作
  2. 操作在组合框中查询水果类型。它们属于同一类,因此它只需向组合框询问其所选项目。可能返回一个枚举。您也可以使用字符串,但这不是最佳做法。
  3. 操作调用controller.deleteFruit(FruitTypeEnum fruitType);

最新更新