Salve gente, ho bisogno del vostro aiuto!!

Vorrei creare una classe che mi crea un pannello con un TextField e un bottone il cui evento dovrebbe avviare una procedura esterna alla classe che mi crei dei file (ma questo lato non importa ora).

Il problema è che io vorrei, una volta creata la mia classe che implementa ActionListener, impostare il metodo actionPerformed(ActionEvent event) in modo tale da non restituire un void ma un valore che poi dovrei controllare a parte.

Questo è il mio codice che mi da errori:

codice:
import java.awt.*;
import java.io.*;
import java.awt.event.*;
import javax.swing.*;


public class creaPannello extends JPanel
{

	public creaPannello()
	{
		frame = new JFrame();
		panel = new JPanel();
		campo = new JTextField(5);
		label = new JLabel("Inserisci qui la matricola");
		button = new JButton("Invia");
		panel.add(label);
		panel.add(campo);
		panel.add(button);
		frame.setContentPane(panel);
		frame.show();

		buttonPress listener = new buttonPress();
		valore = button.addActionPerformed(listener);
		setValore(valore);

	}
	class buttonPress implements ActionListener
	       {
		public String actionPerformed(ActionEvent event) //Si può fare così??
			{
				String input = campo.getText();
				return input;
			}
		}



	public void setValore(String valore)
	{
		matricola = valore;
	}

	public String getValore()
	{
		return matricola;
	}

private String matricola;
private String valore;
private JFrame frame;
private JPanel panel;
private JTextField campo;
private JLabel label;
private JButton button;
}
Spero di essere stato chiaro nel dubbio che mi pongo.
Vi prego tanto di lavorare sul mio progetto e non di crearne un altro.

Grazie 1000!!