出於某種原因,我永遠無法讓setVisible()爲我工作來完成您所描述的內容。相反,怎麼辦這樣的:
frame.remove(panelA);
frame.add(panelB);
「框架」只是JFrame中要放置面板中試試這個,如果調用setVisible()方法不起作用:)
要你原來的問題。 ,所有你需要做的就是(如aioobe說):
panelB.setVisible(true);
((順便說一句,張貼一些代碼會幫我找出你要問)什麼)
這是隻是猜測喲你正試圖做 - 我猜你的JPanel是在不同的班級。然後,您需要這樣做:
class pages extends JFrame implements ActionListener
{
public pages()
{
panelA a = new panelA(this)
}
changeToA(panelB b)
{
remove(panelB);
add(new panelA(this));
}
changeToB(panelA a)
{
remove(panelA);
add(new panelB(this));
}
}
class panelA extends JPanel implements ActionListener
{
pages p;
public panelA(pages p)
{
this.p = p
}
// all that actionlistener code stuff
p.changeToB(this);
}
class panelB extends JPanel implements ActionListener
{
pages p;
public panelB(pages p)
{
this.p = p
}
// all that actionlistener code stuff
p.changeToA(this);
}
您將頁面類傳遞到面板,以便面板可以告訴頁面類自行刪除。 ((我不知道是否有更簡單的方法,但是這是我做的所有的時間))
我希望我幫助:)
'jpanelForPageB.setVisible(真)'的人嗎? – aioobe 2010-05-31 20:38:15