2016-07-18 5 views
0

Я написал ActionListener для элемента меню панели инструментов, который называется «Сохранить», при щелчке Я хочу, чтобы программа сохраняла содержимое TextArea l1 в .txt-файл под названием «filename», , так что это си код, который я придумал (так как программа действительно долго, я вставил здесь только фрагменты кода, где находится или может находиться ошибка):метод write() не распознает TextArea

import java.awt.*; 
import java.awt.event.*; 

... 

import java.io.BufferedWriter; 
import java.io.FileWriter; 
import java.io.Writer; 

class Progetto extends Frame { 
... 

    private TextArea l1 = new TextArea(); 
    ... 

    private MenuBar menubar; 
    private Menu file; 
    private MenuItem save; 

    ... 

    salva.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
     try { 
      BufferedWriter fileOut = new BufferedWriter(new FileWriter("filename.txt")); 
      l1.write(fileOut); 
     } catch (IOException ioe) { 
      ioe.printStackTrace(); 
     } 
     } 
    }); 

Когда я запустите эту программу. Я получаю следующую ошибку:

Error: cannot find symbol 
symbol: method write(java.io.BufferedWriter) 
location: variable l1 of type java.awt.TextArea 

Я посмотрел каждый ere в документации и форумах, но я не могу понять, почему эта ошибка не возникает ни, как ее решить ...

Что можно сделать, чтобы исправить эту ошибку?

EDIT
TextArea выглядит следующим образом:

Jack: 9.0 
Mark: 9.0 
Nick: 1.0 
Linn: 6.5 
Jhon: 3.5 
+1

Вы уверены 'TextArea' есть метод' write'? Если это так, [это недостаточно хорошо документировано] (https://docs.oracle.com/javase/8/docs/api/java/awt/TextArea.html). Компилятор отлично распознает 'l1'. Однако он не может найти метод 'write' для него. – bradimus

+0

Что вы пытаетесь сделать? вы хотите написать «BufferedWriter» в «TextArea»? или вы хотите что-то прочитать из файла и записать его в «TextArea»? – SomeDude

+0

@svasa У меня есть 'TextArea'' l1' с текстом, написанным внутри, и я хочу сохранить его как файл .txt для сепаратора, например, если на 'TextArea' у меня есть следующее: I am java Я хочу, чтобы файл .txt был: Я java –

ответ

1

Изменить код в действии слушателя:

salva.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
     try { 
      String text = l1.getText(); 
      if (text != null && !text.isEmpty()) 
      { 
      String[] lines = text.split("\n"); 
      BufferedWriter fileOut = new BufferedWriter(new FileWriter("filename.txt")); 
      for (String line : lines) 
      { 

       fileOut.write(line, 0, line.length()-1); 
       fileOut.newLine(); 
      } 

      fileOut.close(); 
      } 


     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     } 
    }); 
+0

Спасибо за ответ! Я пытался что-то подобное этому, проблема с этим кодом заключается в том, что он помещает весь текст в одну строку, в то время как текст TextArea I1 написан в разных строках, поэтому я хотел бы, чтобы файл .txt находился в одном и том же формат. –

+0

@ TobiaZamò обновленный ответ. Также ваш вопрос, кажется, совершенно не имеет отношения к задаче, которую вы указали. обновите свой вопрос. – SomeDude

+0

'String lines = text.split (" \ n ");' консоль возвращает ошибку для типов несовместимости от 'String' до' String [] ' –

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