Al momento ho poco tempo (non più di 7 minuti) per controllare il tuo codice.. ho notato subito una cosa però, questo:
codice:
campi= Inserisci.Trova_campi(i);
Che cosa torna? Un array di stringhe?
codice:
for (int i=0; i<nomi_pagine.length; i++) {
campi= Inserisci.Trova_campi(i);
Aggiungi_pagina(nomi_pagine[i], campi, jfp);
}
campi è dichiarato come array di tipo String...quindi, se non hai un array di campi (sottoforma di Stringa) è bene rimuovere le quadre dalla dichiarazione 
codice:
public void Aggiungi_pagina(String Titolo, String[] campi, JFrame jfp) {
Qui vedo che riceve un array di campi String...quindi, le cose sono 2:
1) Campi sarà di tipo String, ma non un array!
2) nel for mostrato sopra, farai campi[i] = Inserisci.Trova_campi(i);
Devi specificare un indice insomma..ed inoltre, devi inizializzare l'array prima 
Ho notato questo per ora...ma come ho detto ho molto poco tempo, quindi non escludo che potrei aver detto qualche stupidaggine :asd:
Questa sera ho tempo per controllare il codice comunque.