如何从JTextArea获取文本?

时间:2011-03-15 23:46:52

标签: java swing jtextarea

我在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();我尝试过,但我收到了一个错误。

2 个答案:

答案 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()方法允许您将文本区域中的文本写入作者。