Du rufst den Konstruktor von JScrollPane ohne Parameter auf, deshalb erhältst du ein leeres JScrollPane. Und du fügst dein JScrollPane deinem JPanel hinzu – richtig wäre, das JPanel ins JScrollPane zu packen.
Ein JScrollPane erstellt eine scrollbare Ansicht einer GUI-Komponente. Diese Komponente, z. B. dein JPanel, kannst du dem Konstruktor von JScrollPane als Parameter übergeben. Anschließend packst du das so erzeugte JScrollPane in einen Container wie z. B. ein JFrame. Beispiel:
JScrollPane scrollPane = new JScrollPane([COLOR="#0000CD"]panel[/COLOR]);
frame.getContentPane().add(scrollPane, BorderLayout.CENTER);
Das panel heißt in deinem Code contentPane, was, wenn du es richtig machst, eine irreführende Bezeichnung ist.