Java 将其他类的方法返回的JPanel逐个分配给公共JPanel对象时出现问题

Java 将其他类的方法返回的JPanel逐个分配给公共JPanel对象时出现问题,java,jpanel,removeall,Java,Jpanel,Removeall,我正在创建安装应用程序。 我有一个初始化应用程序的主类;它有一个JFrame和2个JPanel变量,即panelX和panelY。这个主类创建一个JFrame并向其中添加panelX和panelY。在这些面板中,panelY有三个JButton(即Back、Next和Quit)。Panley在整个过程中保持原样。其中,panelX在“下一步”和“上一步”按钮的单击事件中更改其内容 我还有一些其他的课程。这些类有一个方法,返回添加了不同组件的JPanel 在我的代码中,当我单击“下一步”按钮以及“

我正在创建安装应用程序。 我有一个初始化应用程序的主类;它有一个JFrame和2个JPanel变量,即panelX和panelY。这个主类创建一个JFrame并向其中添加panelX和panelY。在这些面板中,panelY有三个JButton(即Back、Next和Quit)。Panley在整个过程中保持原样。其中,panelX在“下一步”和“上一步”按钮的单击事件中更改其内容

我还有一些其他的课程。这些类有一个方法,返回添加了不同组件的JPanel

在我的代码中,当我单击“下一步”按钮以及“上一步”按钮时,会发生以下步骤

1) 我调用removeAll()方法来删除panelX的所有组件

2) panelX被分配为空

3) 调用上述类的相应方法并返回JPanel。这 返回的JPanel被分配给panelX

panelX.removeAll();    
panelX=null;    
panelX=getNextPanel();
4) 在上述步骤之后;我调用repaint();并在panelX上验证了该方法

问题是,当我按下下一步按钮时,它会显示正确的面板,但当我在单击下一步按钮两次后按下后退按钮,并在panelX上移动鼠标指针时,它也会显示上一个指定面板的组成部分

所以请告诉我朋友们我是如何解决这个问题的


谢谢大家!

不要将
panelX
设置为null或将变量重新分配给新的JPanel

相反,您可以通过在调用
removeAll

使用后向现有的
panelX
添加组件来重用它,如图所示

panelX.repaint();
panelX.validate();