【问题标题】:Trying to transfer Object from one controller class to another试图将对象从一个控制器类转移到另一个
【发布时间】:2018-03-27 02:17:13
【问题描述】:

我正在尝试将对象从控制器 A 传输到控制器 B,但每当我尝试时,它都会将我的对象设置为空。 我在控制器 B 中有一个被调用用户的对象。同样在控制器 B 中,我有一个名为 public void setUser() 的方法。完整的方法是: 公共无效setUser(用户用户){ this.user = 用户; 在控制器 A 中,我执行以下操作:

FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("B.fxml"));
loader.load();
ControllerB ctrl = loader.getController();
cntrl.setUser(user); 

在控制器 B 中我有这个:

SalesAsso user;
public void setUser(SalesAsso user) {
    this.user = user;
}

我的控制器 B 对象不为空,但它仍然没有将我的用户设置为“用户”。我运行代码,它运行良好。但是当我尝试操作该 salesAsso 对象时,该对象为空,它不会让我对它做任何事情。

【问题讨论】:

标签: java javafx controller


【解决方案1】:

我发现了这个问题。我需要做的是将控制器a中的变量存储到控制器b中相同类型的静态变量中。这让我可以操作控制器 b 类中的对象!

【讨论】:

  • 嗯...静态声音...错误..您确实阅读了引用的答案,不是吗:)
  • 是的,我补充说。这确实有助于从一个控制器传输对象。但后来我转移了它。我将它引用为一个静态对象,该对象已经在我的控制器中添加到该对象。然后让我使用所有不同的方法和事件来操作对象
  • 99% 的静态字段是 .. 错误的,所以“已经存在的静态对象”很可能有问题:)
  • 那么你认为我应该删除静态字段吗?
  • 是的,从长远来看,当然 .. 根据您的时间框架/经验,您可以将其标记为有问题并稍后再回来更换 - 不想让您沿着您可能不会的道路行驶现在准备好了:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多