Java 如何从调用方法更新JFrame内容窗格?

Java 如何从调用方法更新JFrame内容窗格?,java,jframe,jpanel,contentpane,multi-window,Java,Jframe,Jpanel,Contentpane,Multi Window,好的,目前我正在尝试制作一个多窗口程序 通过查看其他论坛,您似乎可以在Java JFrame中更新其内容窗格,方法是添加新JComponent(new window/layout/idk),将当前窗口可见性设置为false,将新窗口可见性设置为true,并验证和重新绘制内容窗格: contentPane.add(newWindowPanel); currentWindowPanel.setVisible(false); newWindowPanel.setVisible(

好的,目前我正在尝试制作一个多窗口程序

通过查看其他论坛,您似乎可以在Java JFrame中更新其内容窗格,方法是添加
新JComponent(new window/layout/idk)
,将当前窗口可见性设置为false,将新窗口可见性设置为true,并验证和重新绘制内容窗格:

    contentPane.add(newWindowPanel);
    currentWindowPanel.setVisible(false);
    newWindowPanel.setVisible(true);
    contentPane.validate();
    contentPane.repaint();
现在,我正在尝试并且部分已经完成的是创建一个扩展
JPanel
的类,这个类是我将要创建的许多其他JPanel类的层次结构的顶部

在该类中,我有以下方法:

    public void updateContentPane(Container contentPane, JPanel currentPanel, JPanel nextPanel){

    contentPane.add(nextPanel);
    currentPanel.setVisible(false);
    nextPanel.setVisible(true);
    contentPane.validate();
    contentPane.repaint();
} 
当我在一个子类中调用此方法时,它不起作用

    updateContentPane(WindowMain.contentPane, this, mainMenuClass);
每个子类都继承JPanel特性

“WindowMain”是扩展JFrame的类,“contentPane”是保存frame contentPane的静态容器变量

“this”表示当前类(继承JPane),但“this”实际上不起作用
newobject()

“mainMenuClass”也继承了JPanel,并且已经在此类中实例化

我的目标是通过调用该方法简单地从一个场景跳到另一个场景。但是它通过了代码(调试),但什么也没发生。但是,如果我将代码放在方法中,并将其放在按钮侦听器中,它就可以正常工作


(很抱歉写了这么多,这可能会带来一些混乱,但我需要弄清楚这一点,我将设置contentPane已经包含类的条件,因此无需提及)

您可以通过执行以下操作来更新整个框架

frame.revalidate();
frame.repaint();

您可以添加调用此方法的代码,以便我们查看它是否实际正在运行吗?这没有帮助,它会在代码中运行,但不会更新它。我将调试代码以确定内容窗格是否正在更新