2013-06-06 2 views
1

У меня есть небольшая проблема. Я хочу получить путь к файлу из открытого действия, и я хочу использовать его в save action и еще два ... Лучше всего для меня будет путь сохранения к строке, но я не знаю, как это сделать. И это мой код:Как получить путь к файлу из одного действия в другое?

final String pathmain; 
     Action open = new AbstractAction("Open"){ 
      public void actionPerformed(ActionEvent e){ 
       JFileChooser chooser = new JFileChooser(); 
       FileNameExtensionFilter filter = new FileNameExtensionFilter(
        "Pliki tekstowe txt", "txt"); 
       chooser.setFileFilter(filter); 
       int returnVal = chooser.showOpenDialog(getParent()); 
       if(returnVal == JFileChooser.APPROVE_OPTION) { 
        // System.out.println("You chose to open this file: "+ chooser.getSelectedFile().getName()); 
        String path = chooser.getSelectedFile().toString(); 

        try { 
        FileReader fr = new FileReader(path); 
        BufferedReader br = new BufferedReader(fr); 
        String s; 
        while((s = br.readLine()) !=null){ 
         textarea.append(s+"\n"); 
        } 
       } catch (FileNotFoundException e1) { 
        // TODO Auto-generated catch block 
        e1.printStackTrace(); 
       } catch (IOException e1) { 
        // TODO Auto-generated catch block 
        e1.printStackTrace(); 
       } 

       } 
      } 
     }; 
     Action save = new AbstractAction("Save"){ 
      public void actionPerformed(ActionEvent e){ 
       try { 
        BufferedWriter out = new BufferedWriter(new FileWriter("aaa.txt")); 
        String buffer = textarea.getText(); 
        //FileWriter fw = new FileWriter((textarea.getText().toString())); 
        //textarea.write(pw); 
        out.write(buffer); 
        out.close(); 
       } catch (IOException e1) { 
        // TODO Auto-generated catch block 
        e1.printStackTrace(); 
       } 
      } 
     }; 

ответ

0

Сохраните выбранный файл в качестве атрибута объекта, определяющего эти два действия.

public class MyPanel extends JPanel { 

    private File selectedFile; 

    public MyPanel() { 
     Action open = new AbstractAction("Open") { 
      public void actionPerformed(ActionEvent e) { 
       ... 
       selectedFile = ... 
      } 
     }; 
     ... 
    } 
} 
+0

Хорошо, так что теперь у меня есть, как здесь л: http://pastebin.com/FeDHK5DH И это дает мне ошибку: исключение в потоке «АВТ-EventQueue-0» java.lang.NullPointerException – Blackchart

+0

@Blackchart это потому, что вы не инициализировали экземпляр 'File selected'. Это может помочь вам [---> Как получить файл пути файла на Java] (http://www.mkyong.com/java/how-to-get-the-filepath-of-a-file-in -java /) – Smit

+0

Хорошо, так что теперь не так? Я хочу исправить это, но он все еще не хочет работать :( http://pastebin.com/pJu1LM6d Что интересно в отладчике, я вижу, что этот путь является corect .. – Blackchart

Смежные вопросы