Mi giunge nuova un JPanel.setVisible(true)!
Il metodo setVisible se non sbaglio è solo per i toplevel container quindi per il JFrame per esempio!
Per un JPanel occorre il metodo repaint() che ridisegna il pannello che stai utilizzando.
1) in questo caso devi istanziare una zona per il pannello nello stesso JFrame;
oppure
2) utilizzi una nuova finestra JFrame con un nuovo JPanel oppure un JOptionalPane con un gridLayout.
Nel primo caso dovrai usare il metodo repaint per ridisegnare la finestra;
nel secondo utilizzerai il metodo setVisible per far apparire e scomparire la nuova finestra.