По какой-то причине я не могу заставить setVisible () работать так, чтобы я выполнял то, что вы описываете. Вместо этого я делаю это:
frame.remove(panelA);
frame.add(panelB);
"frame" - это просто JFrame, в который вы хотите поместить панели. Попробуйте, если метод setVisible () не работает:)
На исходный вопрос все, что вам нужно сделать, это (как сказал aioobe):
panelB.setVisible(true);
((кстати, размещение некоторого вашего кода поможет мне понять, что вы пытаетесь спросить))
И это всего лишь предположение относительно того, что вы пытаетесь сделать - я предполагаю, что ваши JPanels находятся в разных классах. Затем вам нужно будет сделать это:
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);
}
Вы передаете класс страниц панелям, чтобы панели могли указать классу страниц удалить себя.
((Я не знаю, есть ли более легкий путь, но это то, что я делаю все время))
Надеюсь, я помог:)