Pour une raison quelconque, je ne peux jamais obtenir setVisible() pour que je fasse ce que vous décrivez. Au lieu de cela, je fais ceci:
frame.remove(panelA);
frame.add(panelB);
« frame » est juste le JFrame que vous voulez mettre les panneaux Essayez ceci si la méthode setVisible() ne fonctionne pas :)
à votre question initiale. , tout ce que vous avez à faire est (comme aioobe dit):
panelB.setVisible(true);
((BTW, affichant une partie de votre code me aiderait à comprendre ce que vous essayez de demander))
Et cela est juste une supposition quant à quoi yo J'essaie de faire - je suppose que vos JPanels sont dans des classes différentes. Ensuite, vous aurez besoin de faire ceci:
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);
}
Vous passez la classe pages aux panneaux de sorte que les panneaux peuvent dire à la classe des pages de se retirer. ((je ne sais pas s'il y a un moyen plus facile, mais c'est ce que je fais tout le temps))
J'espère aidé :)
'jpanelForPageB.setVisible (true)'? – aioobe