出于某种原因,我永远无法让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