我在JFrame和JButton上有一个JTextArea。
当用户在JTextArea textArea上键入字符并按下按钮时,我希望将信息保存在textFile中。
JTextArea textArea = new JTextArea(2, 20);
textArea.setLineWrap (true);
thehandler4 handler4 = new thehandler4(); // next button
button4.addActionListener(handler4);
private class thehandler4 implements ActionListener{ //next button
public void actionPerformed(ActionEvent event){
PrintWriter log = null;
try {
FileWriter logg =new FileWriter("logsheet.txt",true);
log = new PrintWriter(logg);
log.println("Quick Notes: "+textArea);
log.close();
} catch( Exception y ) { y.printStackTrace(); }
}}
但是当我打开logsheet.txt时,我看不到任何东西。它的空。是否有一个我需要的函数,如textArea.getText();我尝试过,但我收到了一个错误。
答案 0 :(得分:2)
我猜你的问题是你的文本区域被定义为类变量和局部变量。您的ActionListener正在访问null变量的类变量。
//JTextArea textArea = new JTextArea(2, 20); // this is wrong, you don't want a local variable
textArea = new JTextArea(2, 20);
此外,使用textArea.write(...)方法是正确的方法。您不希望使用getText()方法,因为该方法可能导致字符串中包含错误的换行符。
答案 1 :(得分:0)
您可以执行以下操作:
JTextArea textArea = new JTextArea(2, 20);
FileWriter logg =new FileWriter("logsheet.txt",true);
textArea.write(logg);
write()方法允许您将文本区域中的文本写入作者。