我在执行此操作时遇到了一个大问题:
从一个JFrame,我调用了一个JInternalFrame,所以,我想从JIF调用一个JF的方法。问题是,如果我创建此 JF 的新实例,则不会应用更改,因为它与原始实例不同。
我正在这个 JIF 中进行登录,如果凭据正确,则必须更改 JF 中的菜单,否则,无需应用任何更改。
我在 Internet 上的其他站点上读到“Invoke”是解决方案,但“Invoke”显然只适用于新实例。还有其他解决方案吗?
最佳答案
不要考虑 JFrame 或 JInternalFrame,因为如果/当您扩展程序时,您可能不会使用任何扩展这两个类的类。相反,您应该从一个对象如何调用另一个对象的方法的一般角度来看待这个问题。解决方案是让一个对象获得对感兴趣对象的有效引用,可能是通过构造函数参数或 setter 方法传递该引用。然后在该引用上调用所需的公共(public)方法。在这个 JFrames 和 Swing 中与任何其他 Java 程序没有什么不同。
关于,
I read in other sites on Internet that "Invoke" is the solution...
不,这与您当前的问题无关,而是与 Swing 线程问题有关,这也不是您当前代码失败的原因。
要获得更多帮助和更好的帮助,请考虑创建并发布 sscce .
关于java - 在不创建新实例的情况下从 JInternalFrame 调用 JFrame 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20645369/