从ActionEvent转移字符串

时间:2018-04-07 00:36:49

标签: java

首先,抱歉,但我不知道如何将我的代码缩减为一个小而易懂的例子,所以我必须解释我想要的内容。

我正在使用标准MCV模型进行大型课程。

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

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

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

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

如果我可以从ActionEvent转移它或者以某种方式使它为全局,然后将其转移到另一个类,那将是最干净的。我认为在控制器()中处理它是可以的,但是我觉得我有一段时间尝试将它传递给ActionEvent。

请假设在这种情况下我完全没有希望,模糊的提示无济于事。我总共花了一天时间来讨论这个问题,不得不采取一种不好的替代方式(在另一个类中重新创建ComboBox),但我仍然想要很好地理解并理解它背后的概念。然而,我没有时间对它进行更多的研究,所以我请求你的帮助。

谢谢。

1 个答案:

答案 0 :(得分:0)

我认为你可能会使问题复杂化。

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

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