删除JPanel中的JPanel ...在JPanel中

alx*_*cyl 2 java swing jpanel

我正在尝试使用NetBeans在Java中创建类似幻灯片的应用程序.

我有一个JFrame(主窗口),里面有两个按钮(后退和下一个)用于导航,JPanel(mainPanel)作为应用程序"幻灯片"的持有者.我也使用自定义的JPanel(SlidePanel)对象,然后放在其中mainPanel.其中一些SlidePanel对象中包含JPanel.

现在,我已经能够将这些SlidePanel对象放入其中mainPanel并进行导航(例如,如果我单击下一个按钮,SlidePanel 1将替换为SlidePanel 2,或者如果我单击后退按钮,SlidePanel 2将被替换为SlidePanel 1.)我' VE通过这样做removeAll(),revalidate()repaint()方法.

问题从这里开始.第三个SlidePanel对象里面包含一个JPanel.当你到达第三个时会发生什么SlidePanel,它运作正常.但是从那里开始,如果你单击后退按钮(它会带你回到SlidePanel 2),JPanel会SlidePanel 3保留在屏幕上,里面的组件会被SlidePanel 2调整为适合mainPanel.

我该怎么做才能解决这个问题?

编辑:非常感谢所有回答的人.我在一个虚拟项目上尝试过CardLayout,它工作正常.现在,我所要做的就是将其添加到原始版本中.再次感谢.:)

mKo*_*bel 5

我建议使用CardLayout,而不是JPanelsRuntime示例中添加和删​​除,CardLayout并与您的想法一起在这里


mre*_*mre 5

我建议你使用不同的布局管理器(例如CardLayout); 让布局经理担心杂乱无章的组件.