Inserir janela para abrir e salvar arquivos no Editor de texto

Olá queria uma ajuda para implementar uma janela para abrir e salvar arquivos do meu editor de texto.
o programa já abre uma janela para colocar o nome do arquivo, mas eh com o JPane: String nomeArq = JOptionPane.showInputDialog(frame, “Nome Arquivo”);
já procurei na Net e achei isso:

public FileChooser(){ String caminhoArquivo = ""; JFileChooser arquivo = new JFileChooser(); int retorno = arquivo.showOpenDialog(null); if(retorno == JFileChooser.APPROVE_OPTION){ caminhoArquivo = arquivo.getSelectedFile().getAbsolutePath(); JOptionPane.showMessageDialog(null, caminhoArquivo); }else{ //não abriu }

Mas não consigo adicionar o JFileChooser, alguém pode me ajudar ,estou tentando implementar no BlueJ.

códigos:

[code]import javax.swing.;
import java.awt.
;
import java.awt.event.*;

public class JanelaEditor {
private JFrame frame = new JFrame(“Meu Editor POO”);
private JMenuBar barra = new JMenuBar();
private JMenu menuArquivo = new JMenu(“Arquivo”);
private JMenu menuEditar = new JMenu(“Editar”);
private JMenuItem itemAbrir = new JMenuItem(“Abrir”);
private JMenuItem itemNovo = new JMenuItem(“Novo”);
private JMenuItem itemSalvar = new JMenuItem(“Salvar”);
private JMenuItem itemCopiar = new JMenuItem(“Copiar”);
private JMenuItem itemColar = new JMenuItem(“Colar”);
private JMenuItem itemRecortar = new JMenuItem(“Recortar”);
private JTextArea areaTexto = new JTextArea(50,50);
protected ControladorEditor controlador;

public JanelaEditor(){
    menuArquivo.add(itemAbrir);
    menuArquivo.add(itemNovo);
    menuArquivo.add(itemSalvar);
    menuEditar.add(itemCopiar);
    menuEditar.add(itemColar);
    menuEditar.add(itemRecortar);
    barra.add(menuArquivo);
    barra.add(menuEditar);
    frame.setJMenuBar(barra);
    frame.setSize(500,500);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container cp = frame.getContentPane();
    cp.add(areaTexto);
     
    itemNovo.addActionListener( new ItemNovoListener() );
    itemCopiar.addActionListener( new ItemCopiarListener() );
    itemColar.addActionListener(
        new ActionListener(){
            public void actionPerformed(ActionEvent evt){
                areaTexto.paste();
            }
        }
    );
    
    itemAbrir.addActionListener(
        new ActionListener(){
            public void actionPerformed(ActionEvent evt){
                abrir();
            }
        }
    );
    
    itemSalvar.addActionListener(
        new ActionListener(){
            public void actionPerformed(ActionEvent evt){
                salvar();
            }
        }
    );
    
}

public void setControlador(ControladorEditor c){
    controlador = c;
}

public ControladorEditor getControlador(){
    return controlador;
}

public void mostrarMensagemDeErro(String msg){
    JOptionPane.showMessageDialog(frame,msg);
}

public void salvar(){
    //LeitorEscritor le = new LeitorEscritor();
    String texto = areaTexto.getText();
    String nomeArq = JOptionPane.showInputDialog(frame, "Nome Arquivo");
    controlador.salvar(nomeArq,texto);
}

public void abrir(){
    
    String nomeArq = JOptionPane.showInputDialog(frame, "Nome Arquivo");
    String texto = controlador.abrir(nomeArq);
    areaTexto.setText(texto);
    
}

public void mostrar(){
    frame.setVisible(true);
}

public void apagar(){
    frame.setVisible(false);    
}

public JMenuItem getItemNovo(){
    return itemNovo;
}

public JMenuItem getItemAbrir(){
    return itemAbrir;
}

class ItemNovoListener implements ActionListener{
    public void actionPerformed(ActionEvent evt){
        areaTexto.setText("");
    }
}

class ItemCopiarListener implements ActionListener{
    public void actionPerformed(ActionEvent evt){
        areaTexto.copy();
    }
}

}[/code]

---------------------------------//------------------------------

[code]import java.io.;
import java.util.
;

public class LeitorEscritor
{

public LeitorEscritor(){
}


public String ler(String nomeArq) throws FileNotFoundException{
    File file = new File(nomeArq);
        Scanner sc = new Scanner(file);        
        String texto="";
        while (sc.hasNextLine()){
            texto += sc.nextLine()+"\r\n";
        }         
        sc.close();
   
    
}

public void escrever(String nomeArq, String texto){
    File file = new File(nomeArq);
    FileWriter fw=null;
    PrintWriter pw=null;
    try{
        fw = new FileWriter(file);
        pw = new PrintWriter(fw);
        pw.println(texto);
        pw.close();
    }catch(IOException e){
       System.out.println(e.getMessage()); 
    }catch(NullPointerException e){
    }
    
    
}

[/code]
--------------------------//-----------------------------

[code]public interface ControladorEditor
{
public String abrir(String nomeArq);

public void salvar(String nomeArq, String texto);

}
[/code]
------------------------------//--------------------------

[code]public class PrincipalEditor {

public static void main(String[] args){
    JanelaEditor je = new JanelaEditor();
    ControladorEditorImpl ce = new ControladorEditorImpl();
    je.setControlador(ce);
    ce.setJanelaEditor(je);
    je.mostrar();
    
}    

}[/code]
-------------------------//------------------------------------

[code]import java.io.*;

public class ControladorEditorImpl implements ControladorEditor {
private LeitorEscritor le = new LeitorEscritor();
private JanelaEditor janelaEditor;

public void setJanelaEditor(JanelaEditor j){
    janelaEditor = j;
}

public JanelaEditor getJanelaEditor(){
    return janelaEditor;
}

public String abrir(String nomeArq){
    try{
        return le.ler(nomeArq);
    }catch(FileNotFoundException e){            
        janelaEditor.mostrarMensagemDeErro("Arquivo não encontrado");
        return "";
    }
}

public void salvar(String nomeArq, String texto){
    le.escrever(nomeArq,texto);
}

}[/code]

Oi,

Bem-vindo ao GUJ.

Antes de mais nada, sugiro que leia este tópico http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor

Para a resolução do seu problema, sugiro mesmo usar o JFileChooser, no qual pode ser visualizado aqui:

http://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html

Tchauzin!

obg! vou dar uma olhada!

Consegui fazer isso, mas ele continua sem salvar (ajudem!)

[code]public void salvar(){
JFileChooser chooser;
chooser = new JFileChooser();
String caminho = “”;
File file = null;
int retorno = chooser.showSaveDialog(null);
if (retorno==JFileChooser.APPROVE_OPTION){
caminho = chooser.getSelectedFile().getAbsolutePath(); // o getSelectedFile pega o arquivo e o getAbsolutePath retorna uma string contendo o endereço.
}
if(!caminho.equals("")){

        file = new File(caminho+".txt"); //  salvar como txt
        String texto = areaTexto.getText();
        String nomeArq = (".txt");
        controlador.salvar(nomeArq,texto);
    }else{
       // throw new FileNaoSelecionadoException();        
    }
}[/code]

Se queres realmente que te ajudem, aconselho a que leias mesmo isto.

Você só está com o caminho do arquivo.

Depois de usar o JFileChooser e obter o caminho você precisa persistir o conteúdo dos seus dados com outros métodos como: InputStrem e OutputStream. (por exemplo)