我为工具栏菜单项编写了ActionListener
,称为“保存”,点击后我希望程序将TextArea
l1的内容保存到名为“filename”的.txt文件中“,这就是我提出的代码(因为程序很长,我只在这里粘贴了错误所在或可能位于的代码片段):
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
我在文档和论坛中随处可见,但我无法理解为什么这个错误不会发生,如何解决它......
我该怎么做才能解决此错误?
修改
TextArea
看起来像这样:
Jack: 9.0
Mark: 9.0
Nick: 1.0
Linn: 6.5
Jhon: 3.5
答案 0 :(得分: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();
}
}
});