【问题标题】:Communication between already existing classes现有类之间的通信
【发布时间】:2017-03-10 21:04:53
【问题描述】:

如果这个问题看起来很基本并且已经有答案,我很抱歉,但除非我把它变成一个正确的问题,否则谷歌不会找到它。

我有一个主类,它是一个 JFrame(存在并且将只有一个对象,我们称之为“主”),它创建并调用另一个 JFrame 类(我们称之为 window2),但是,我仍然需要这个window2 从已经存在的主类中调用方法。通常 window2 会有类似 Main mainMenu = new Main(); 的东西。 但这显然会创建一个新的 main 对象,我仍然想引用已经存在的对象并从中获取信息。

【问题讨论】:

  • 你应该共享相关代码,但是要指向当前实例的对象引用,你使用this关键字。
  • 如果您已经拥有来自对象窗口 2 的行为,我不太确定为什么要从对象 main 获取行为.. 可以清楚地看到您的代码并了解您想要做什么做..
  • main的引用传递给window2

标签: java swing jframe


【解决方案1】:

依赖注入。答案取决于您的 Main 类是否是静态的,但我们假设它不是:

  • 在 Window2 中创建 Main 引用:Main main;
  • 在 Window2 中创建方法:public void injectionMainInstance(Main main){this.main=main}
  • 在 Main 中有 Window2 实例 window2。调用window2.injectMainInstance(this);

你现在应该可以在 Window2 中使用 main.mainMethodTBUsed();

【讨论】:

  • 谢谢,这行得通,是的,我的主要方法不是静态的。我是一个初级程序员,我认为问题可能更容易解决,我以前从未听说过依赖注入,我什至不确定这是否是正确的做事方式。但它有效,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-06
  • 2010-12-29
  • 2014-05-24
  • 2015-09-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多