salve, sono nuovo nel mondo del Java, ho problemi con il richiamare un oggetto all'esterno del metodo in cui è stato creato. forse non mi sono spiegato bene XD, quindi ecco il codice:

codice:
import java.awt.BorderLayout;



public class frame1 extends JFrame {


    private JPanel contentPane;
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    frame1 frame = new frame1();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }


    public frame1() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);
        
        JButton Selezione = new JButton("Seleziona File");
        Selezione.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent arg0) {
                
                JFileChooser scelta= new JFileChooser();
                FileFilter documentoWord = new FileNameExtensionFilter("DOC file", "doc");
                FileFilter documentoPdf = new FileNameExtensionFilter("PDF file", "pdf");
                FileFilter documentoOdt = new FileNameExtensionFilter("ODT file", "odt");
                
                scelta.addChoosableFileFilter(documentoPdf);
                scelta.addChoosableFileFilter(documentoOdt);
                scelta.setFileFilter(documentoWord);
                
                int sel=scelta.showDialog(null, "Scegli File..");
                if(sel==JFileChooser.APPROVE_OPTION){
                    File scelto = scelta.getSelectedFile();
                    String FileN=scelto.getName();
                    String FileP=scelto.getPath();
                    DatiFile a =new DatiFile();
                    a.setDati(FileN, FileP);
                }
                
            }
        });
        Selezione.setBounds(303, 23, 105, 23);
        contentPane.add(Selezione);
        JLabel stringaPath = new JLabel("Nessun file selezionato");
        stringaPath.setForeground(new Color(0, 0, 0));
        stringaPath.setBackground(Color.LIGHT_GRAY);
        stringaPath.setBounds(33, 22, 234, 24);
        contentPane.add(stringaPath);
        
        if ((a.getNome()==null)||(a.getPath==null)) stringaPath.setText("Nessun File Selezionato");
        else stringaPath.setText(a.getNome + " " + a.getPath);
    }


    public class DatiFile{
        public String NomeFile;
        public String PathFile;
        
        public String getNome(){
            return NomeFile;
        }
        public String getPath(){
            return PathFile;
        }
        
        public void setDati(String Nome, String Path) {
            this.NomeFile= Nome;
            this.PathFile= Path;
            
        }
        
    }
}
il problema è che istanzio l'oggetto "a" di tipo DatiFile dentro il JFileChooser salvando i dati del file, ma quando vado a richiamarlo fuori per stampare nome e path nella label non mi riconosce l'oggetto...dove sbaglio?