在我的项目中,我在JFrame中有一个需要交换的JPanel(bottomPanel),所以我在bottomPanel上使用CardLayout。CardLayout交换面板
在我父的JFrame我已经基本上得到这个代码的方法(setBottomPanel):
bottom.add(p.toString(),p);
bottomLayout.show(bottom, p.toString());
我父的JFrame的构造函数调用它一次,它工作正常。但是,我将对此父JFrame的引用传递给其他JPanel,并且如果我在引用上调用setBottomPanel(),则它不起作用,面板不会更改。 我的确使用了bottomLayout.next(bottom)
,这确实改变了面板,但改为空的。
更新:
看来这是正确加载,我改变了代码回调用next()
但正在传递中的JPanel是空的。这可能是因为我在被添加到bottomPanel的JPanel上使用GridLayout?我没有通过布局参考......
啊,是的,你说的add()的参数顺序是正确的 - 在我的源代码中它是正确的,谢谢。 我忘了添加,我的确在调用validate和repaint – amr 2010-02-24 14:55:20