我创建了一个带有加载组件的JPanel,名为bkg,所以我想将它更改为SlideShow,扩展jpanel,并在我点击按钮时显示它。这是从按钮调用的代码:
public void startGame(){
bkg.removeAll();
bkg.revalidate();
bkg.repaint();
bkg = new SlideShow();
contentPane.add(bkg, BorderLayout.CENTER);
}
在SlideShow构造函数中,我创建了一些测试标签,但是当我单击按钮时,所有旧的bkg组件都会消失(我想要的)但是我放在costructor中的SlideShow组件中没有任何内容出现...如何更改bkg JPanel到另一个扩展JPanel的外部类?
答案 0 :(得分:2)
建议:
reset()
方法,一个将它的模型和它的可见状态设置为原始状态。所以
public void startGame(){
// *** no need for this ***
// bkg.removeAll();
// bkg.revalidate();
// bkg.repaint();
bkg = new SlideShow();
contentPane.add(bkg, BorderLayout.CENTER);
// *** add this ***
contentPane.revalidate();
contentPane.repaint();
}
或者如果你去重置选项,那么该方法将简化为:
public void startGame(){
bkg.reset();
}
然而,重置方法是关键,细节取决于程序其余部分的结构。