Ciao a tutti, chiedo di nuovo aiuto alla comunità...
Applicazione che alla pressione di un tasto apre un popup nel quale vengono inseriti dei dati, i quali vengono tornati all'applicazione principale sotto forma di un vettore.
Il problema è che la finestra di popup viene correttamente visualizzata e settata (titolo, dimensioni, ecc...) ma non si vede nessun contenuto.
Suggerimenti?
Posto il codice incriminato.
Grazie Matteo

codice:
//Chiamata dall'applicazione principale
//BottoneAggiungi è una classe che estende JButton
BottoneAggiungi aggiungiSchedaB = new BottoneAggiungi();
		aggiungiSchedaB.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {

				System.out.println(SchedaLibera.showInputDialog());

			}

		});

//Classe popoup SchedaLibera

import java.awt.*;
import java.awt.event.*;
import java.text.*;
import java.util.*;

import javax.swing.*;
/**
 *
 * @author matteo
 */
public class SchedaLibera extends JOptionPane{

    public static Vector<Object> showInputDialog() {

        Vector<Object> dati = null;
        dati = new SchedaTestoLibero().ottieniDati();
        return dati;

    }

}

final class SchedaTestoLibero extends JDialog{

    //Variabili
    String testo;
    JPanel principale;
    JTextArea visitaTA;
    JButton salvaB;
    JButton annullaB;


    public SchedaTestoLibero() {

        //Set caratteristiche
        setModal(true);
        Date dataOdierna = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
        setTitle(sdf.format(dataOdierna));
        setMinimumSize(new Dimension(640,480));
	setVisible(true);

        //Elementi
        visitaTA = new JTextArea(20,5);
        principale.add(visitaTA);

        salvaB = new JButton("Salva");
        salvaB.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                testo = visitaTA.getText();
            }

        });
        principale.add(salvaB);

        annullaB = new JButton("Annulla");
        annullaB.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                return;
            }

        });
        principale.add(annullaB);

        principale = new JPanel();
        getContentPane().add(principale);

        pack();

    }

    public Vector<Object> ottieniDati() {

        Vector<Object> riassunto = new Vector<Object>();
        riassunto.add(testo);
        return riassunto;

    }

}