我正在创建一个安装程序应用程序。 我有一个初级化应用程序的主类;它有一个JFrame和2个JPanel变量,即panelX和panelY。这个主类创建一个JFrame并向其添加panelX和panelY。在这些面板中,面板Y有三个JButton(即Back,Next和Quit)。 panelY在整个过程中保持原样。其中panelX更改其内容,如下一个和后退按钮的单击事件。
我还有其他一些课程。这些类有一个方法,它返回添加了不同conponent的JPanel。
在我的代码中单击“下一步按钮”以及“后退按钮”后面的步骤
1)我调用removeAll()方法删除panelX的所有组件
2)panelX被指定为null。
3)调用上述类的相应方法并返回JPanel。这个 返回的JPanel被分配给panelX。
实施例。
panelX.removeAll();
panelX=null;
panelX=getNextPanel();
4)经过上述步骤;我叫repaint();在panelX上验证方法。
实施例
panelX.repaint();
panelX.validate();
问题是当我按下Next Button它显示正确的面板但是当我在按下Next按钮两次后按下Back Button并在panelX上移动鼠标指针时它也会显示先前指定面板的组件。
所以请告诉朋友我是如何解决这个问题的。
谢谢!
答案 0 :(得分:2)
使用CardLayout,如图here所示。
答案 1 :(得分:0)
不要将panelX
设置为null或将变量重新分配给新的JPanel。
相反,您可以在调用panelX
后向其添加组件,以重用现有的removeAll
。