1

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

4

2 回答 2

3

我猜您的问题是您将文本区域定义为类变量和局部变量。您的 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() 方法,因为该方法可能会导致字符串中包含错误的换行符。

于 2011-03-16T00:05:01.963 回答
0

您可以改为执行以下操作:

JTextArea textArea = new JTextArea(2, 20);
FileWriter logg =new FileWriter("logsheet.txt",true);
textArea.write(logg);

write() 方法允许您将文本从文本区域写入写入器。

于 2011-03-15T23:54:15.603 回答