Java 如何从JTextArea获取文本?
我在JFrame和JButton上有一个JTextArea 当用户在JTextArea文本区域中键入字符并按下按钮时,我希望信息保存在文本文件中Java 如何从JTextArea获取文本?,java,swing,jtextarea,Java,Swing,Jtextarea,我在JFrame和JButton上有一个JTextArea 当用户在JTextArea文本区域中键入字符并按下按钮时,我希望信息保存在文本文件中 JTextArea textArea = new JTextArea(2, 20); textArea.setLineWrap (true); thehandler4 handler4 = new thehandler4(); // next button button4.addActionListener(handler4
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();我试过了,但我错了 您可以改为执行以下操作:
JTextArea textArea = new JTextArea(2, 20);
FileWriter logg =new FileWriter("logsheet.txt",true);
textArea.write(logg);
write()方法允许您将文本从文本区域写入到编写器。我猜您的问题在于您将文本区域定义为类变量和局部变量。ActionListener正在访问空的类变量
//JTextArea textArea = new JTextArea(2, 20); // this is wrong, you don't want a local variable
textArea = new JTextArea(2, 20);
另外,使用textArea.write(…)方法是正确的方法。您不想使用getText()方法,因为这种方法可能会导致字符串中包含错误的换行符。执行此操作时会出现什么错误:textArea.getText()?java.lang.NullPointerException at AdjustmentForm$thehandler4.actionPerformed(AdjustmentForm.java:150)它可以很好地编译和执行,但是我得到了上面描述的相同错误