Java 从JInternalFrame调用JFrame的方法,而不执行新实例

Java 从JInternalFrame调用JFrame的方法,而不执行新实例,java,swing,jframe,jinternalframe,Java,Swing,Jframe,Jinternalframe,我在这方面有点大问题: 从JFrame调用JInternalFrame,因此,我想从JIF调用JF的一个方法。问题是,如果我创建这个JF的一个新实例,更改不会应用,因为它不是同一个原始实例 我正在这个JIF中登录,如果凭证正确,JF中的菜单必须更改,否则,不必应用任何更改 我在互联网上的其他网站上读到,“调用”是解决方案,但“调用”显然只适用于新实例。还有其他解决方案吗?不要考虑JFrame或JInternalFrame,因为如果/当您扩展程序时,可能不会使用任何扩展这两个类的类。相反,您应该从

我在这方面有点大问题:

从JFrame调用JInternalFrame,因此,我想从JIF调用JF的一个方法。问题是,如果我创建这个JF的一个新实例,更改不会应用,因为它不是同一个原始实例

我正在这个JIF中登录,如果凭证正确,JF中的菜单必须更改,否则,不必应用任何更改


我在互联网上的其他网站上读到,“调用”是解决方案,但“调用”显然只适用于新实例。还有其他解决方案吗?

不要考虑JFrame或JInternalFrame,因为如果/当您扩展程序时,可能不会使用任何扩展这两个类的类。相反,您应该从一个对象如何调用另一个对象的方法的一般角度来看待这一点。解决方案是让一个对象获得对感兴趣对象的有效引用,可能是通过构造函数参数或setter方法传入该引用。然后对该引用调用所需的公共方法。在本文中,JFrames和Swing与任何其他Java程序都没有区别

关于,

我在互联网上的其他网站上读到,“调用”是解决方案

不,这与您当前的问题无关,而是与Swing线程问题有关,这也不是您当前代码失败的原因


<>更多的帮助和更好的帮助,考虑创建和发布.

p>谢谢大家的帮助!p> 我已经解决了这个问题

一般来说,我用一个通用的全局声明来称呼我所有的JinternalFrame:

private JInternalFrame jif;
但为了解决我的问题,我直接使用JInternalFrame的类声明了一个新构造函数:

private LogInJInternalFrame logIn;
在调用之前,我在登录JIF中声明了一个公共全局构造函数:

public MainJFrame mainJF;
这样,使用JF中的新构造函数,我就可以访问我的JIF中的所有公共声明。然后,我用这样的方式打电话:

private void logInCall(){
    logIn = new LogInJInternalFrame(); //--New instance of my JIF
    logIn.mainJF = this;  /*Set the class to the constructor instead to declare a new one*/
    logIn.setVisible(true);
}
之后,在我的JIF中,当凭据正确时,我使用了以下方法:

mainJF.setNewUserMenu();  /*The class's instance let me "invoke" the method I've wanted*/
结果出来后,我只能说“我真的需要更多地放松,更好地思考问题”


再次感谢

那么它是小的还是大的呢?;)发布你的代码(它的相关部分)。这就像是一个讽刺,jaja,因为这是一件简单的事情,但它给我带来了很多问题。事实上我已经解决了这个问题。我会发布更多的解决方案!!!谢谢你的时间!!!谢谢!我会接受你的建议!!!我已经解决了这个问题,我会把解决方案贴下来!!!