Olá jemoliveira,
tenho uma interface aqui de um compilador, o qual eu desenvolvi pra um trabalho da faculdade.
Tirei o código não relevante, e acho que poderá te ajudar a entender como o FileChooser funciona.
importjava.io.BufferedReader;importjava.io.File;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.io.PrintWriter;importjavax.swing.JFileChooser;importjavax.swing.JOptionPane;/** * * @author serjaum */publicclassTesteFileChooserextendsjavax.swing.JFrame{privatestaticfinallongserialVersionUID=1L;publicTesteFileChooser(){initComponents();}privatevoidinitComponents(){jScrollPane1=newjavax.swing.JScrollPane();jTextArea1=newjavax.swing.JTextArea();jScrollPane2=newjavax.swing.JScrollPane();jTextArea2=newjavax.swing.JTextArea();jLabel1=newjavax.swing.JLabel();jButtonLex=newjavax.swing.JButton();jButtonSint=newjavax.swing.JButton();jButtonSair=newjavax.swing.JButton();jMenuBar1=newjavax.swing.JMenuBar();jMenu1=newjavax.swing.JMenu();jMenuItemAbrir=newjavax.swing.JMenuItem();jMenuSalvar=newjavax.swing.JMenuItem();jMenuLimpar=newjavax.swing.JMenuItem();fileChooser=newjavax.swing.JFileChooser(".");getContentPane().setLayout(null);setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);setTitle("Compilador");setResizable(false);jTextArea1.setColumns(20);jTextArea1.setRows(5);jTextArea1.setLineWrap(true);jScrollPane1.setViewportView(jTextArea1);getContentPane().add(jScrollPane1);jScrollPane1.setBounds(20,20,520,430);jTextArea2.setColumns(20);jTextArea2.setRows(5);jScrollPane2.setViewportView(jTextArea2);getContentPane().add(jScrollPane2);jScrollPane2.setBounds(20,470,520,110);jLabel1.setFont(newjava.awt.Font("Dialog",0,10));jLabel1.setText("Console");getContentPane().add(jLabel1);jLabel1.setBounds(30,450,45,20);jButtonLex.setText("L\u00e9xico");jButtonLex.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEventevt){jButtonLexActionPerformed(evt);}});getContentPane().add(jButtonLex);jButtonLex.setBounds(20,590,110,25);jButtonSint.setText("Sint\u00e1tico");jButtonSint.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEventevt){jButtonSintActionPerformed(evt);}});getContentPane().add(jButtonSint);jButtonSint.setBounds(240,590,88,25);jButtonSair.setText("Sair");jButtonSair.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEventevt){jButtonSairActionPerformed(evt);}});getContentPane().add(jButtonSair);jButtonSair.setBounds(450,590,90,25);jMenu1.setText("Menu");jMenuItemAbrir.setText("Abrir");jMenuItemAbrir.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEventevt){jMenuItemAbrirActionPerformed(evt);}});jMenu1.add(jMenuItemAbrir);jMenuSalvar.setText("Salvar");jMenuSalvar.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEventevt){jMenuSalvarActionPerformed(evt);}});jMenu1.add(jMenuSalvar);jMenuLimpar.setText("Limpar");jMenuLimpar.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEventevt){jMenuLimparActionPerformed(evt);}});jMenu1.add(jMenuLimpar);jMenuBar1.add(jMenu1);setJMenuBar(jMenuBar1);java.awt.DimensionscreenSize=java.awt.Toolkit.getDefaultToolkit().getScreenSize();setBounds((screenSize.width-566)/2,(screenSize.height-680)/2,566,680);}privatevoidjButtonSairActionPerformed(java.awt.event.ActionEventevt){System.exit(0);}privatevoidjButtonSintActionPerformed(java.awt.event.ActionEventevt){String[]args=newString[1];args[0]=fileChooser.getSelectedFile().getAbsolutePath();}privatevoidjButtonLexActionPerformed(java.awt.event.ActionEventevt){String[]args=newString[1];args[0]=fileChooser.getSelectedFile().getAbsolutePath();}privatevoidjMenuLimparActionPerformed(java.awt.event.ActionEventevt){jTextArea1.setText("");jTextArea2.setText("");}privatevoidjMenuSalvarActionPerformed(java.awt.event.ActionEventevt){intres=fileChooser.showSaveDialog(this);if(res==JFileChooser.APPROVE_OPTION){Filearq=fileChooser.getSelectedFile();try{fileChooser.showOpenDialog(this);Strings=fileChooser.getSelectedFile().getAbsolutePath();System.out.println("fileChooser.getSelectedFile().getAbsolutePath(): "+s);escreveArquivo(jTextArea1.getText(),arq.getPath());System.out.println("Nome do arquivo escolhido: "+arq.getPath());}catch(IOExceptionioe){JOptionPane.showMessageDialog(null,"Não foi possível salvar arquivo!");}}}privatevoidjMenuItemAbrirActionPerformed(java.awt.event.ActionEventevt){intres=fileChooser.showOpenDialog(this);if(res==JFileChooser.APPROVE_OPTION){Filearq=fileChooser.getSelectedFile();try{jTextArea1.setText(retornaString(arq.getPath()));}catch(Exceptionex){JOptionPane.showMessageDialog(null,"Não foi possível abrir o arquivo"+arq.getPath()+"!","Leitura de arquivo",JOptionPane.ERROR_MESSAGE);}}}publicvoidescreveArquivo(Stringconteudo,StringfileName)throwsIOException{PrintWriterout=newPrintWriter(newFileWriter(fileName));out.print(conteudo);out.close();JOptionPane.showMessageDialog(null,"Arquivo salvo com sucesso!");}publicStringretornaString(StringfileName)throwsIOException{BufferedReaderin=newBufferedReader(newFileReader(fileName));Stringline;StringBufferbuffer=newStringBuffer();while((line=in.readLine())!=null){buffer.append(line+"\n");}in.close();returnbuffer.toString();}publicStringretornaStringTok(StringfileName)throwsIOException{BufferedReaderin=newBufferedReader(newFileReader(fileName));Stringline;StringBufferbuffer=newStringBuffer();while((line=in.readLine())!=null){buffer.append(line+"\n");}jTextArea2.setText(buffer.toString());in.close();returnbuffer.toString();}publicstaticvoidmain(Stringargs[]){java.awt.EventQueue.invokeLater(newRunnable(){publicvoidrun(){newTesteFileChooser().setVisible(true);}});}privatejavax.swing.JButtonjButtonLex;privatejavax.swing.JButtonjButtonSair;privatejavax.swing.JButtonjButtonSint;privatejavax.swing.JLabeljLabel1;privatejavax.swing.JMenujMenu1;privatejavax.swing.JMenuBarjMenuBar1;privatejavax.swing.JMenuItemjMenuItemAbrir;privatejavax.swing.JMenuItemjMenuLimpar;privatejavax.swing.JMenuItemjMenuSalvar;privatejavax.swing.JScrollPanejScrollPane1;privatejavax.swing.JScrollPanejScrollPane2;privatejavax.swing.JTextAreajTextArea1;publicstaticjavax.swing.JTextAreajTextArea2;privatejavax.swing.JFileChooserfileChooser;}