Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从JTextArea获取文本?_Java_Swing_Jtextarea - Fatal编程技术网

Java 如何从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

我在JFrame和JButton上有一个JTextArea

当用户在JTextArea文本区域中键入字符并按下按钮时,我希望信息保存在文本文件中

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)它可以很好地编译和执行,但是我得到了上面描述的相同错误