Ti conviene cercare su internet un manuale della libreria swing perchè iniziando così a caso se non impari ad usare i layout non riuscirai mai a mettere le cose dove vuoi.
Ogni layout serve per identificare la disposizione degli oggetti in un componente.

Tra le altre cose nel tuo codice inserisci un JPanel e un JButton in una JLabel e non ne capisco sinceramente il motivo... :master:

codice:
l.add(b); 
l.add(p1);
Semmai dovrebbe essere il contrario...

Ciao.