choser viene usato per selezionare una determinata cartella ed un file di tipo .mdb, nei listner di cartella e database. Non riesco a farlo funzionare. dove sbaglio? devo specificare meglio qualcosa?

codice:
public class Frame extends JFrame {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JButton cartella,database,avvio;
	private JTextField linkCartella,linkDatabase;
	private JRadioButton reset;
	private JPanel pannelloB,pannelloTA;
	private JFileChooser chooser;
	
	public Frame(){
		super("Estrattore");
		cartella=new JButton("Seleziona Cartella");
		cartella.setToolTipText("Selezionare la cartella che contiene i file pdf");
		database=new JButton("Seleziona database");
		database.setToolTipText("Selezionare il database in cui caricare i dati");
		avvio=new JButton("Avvia Estrazione");
		avvio.setToolTipText("Avvia il caricamento");
		reset=new JRadioButton("Vuoi resettare il database?");
		linkCartella=new JTextField(25);
		linkCartella.setEditable(false);
		linkCartella.setToolTipText("Link della cartella");
		linkDatabase=new JTextField(25);
		linkDatabase.setEditable(false);
		linkDatabase.setToolTipText("Link del database");
		pannelloB=new JPanel(new GridLayout(3,1));
		pannelloB.add(database);
		pannelloB.add(cartella);
		pannelloB.add(avvio);
		pannelloTA=new JPanel(new GridLayout(3,1));
		pannelloTA.add(linkDatabase);
		pannelloTA.add(linkCartella);
		pannelloTA.add(reset);
		cartella.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(java.awt.event.ActionEvent evento){
				int risp = chooser.showOpenDialog(null);
				if (risp == JFileChooser.APPROVE_OPTION) {
					File file = chooser.getSelectedFile();
					linkCartella.setText(file.getPath());
				}					
				return;
			}
		});
		database.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(java.awt.event.ActionEvent evento){
				int risp = chooser.showOpenDialog(null);
				if (risp == JFileChooser.APPROVE_OPTION) {
					File file = chooser.getSelectedFile();
					linkDatabase.setText(file.getPath());
				}					
				return;
			}
		});
		avvio.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(java.awt.event.ActionEvent evento){
				
			}
		});
		getContentPane().setLayout(new BorderLayout());
		getContentPane().add(BorderLayout.CENTER,pannelloTA);
		getContentPane().add(BorderLayout.EAST,pannelloB);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(500, 200);
		setResizable(false);
		setLocationRelativeTo(null);
	}

	public static void main(String[] args) {
		Frame f=new Frame();
		f.setVisible(true);
	}

}