2011-03-15 18 views
1

私はJFrameとJButtonにJTextAreaを持っています。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

次のようなときに発生するエラーは何ですか?textArea.getText()? –

+0

java.lang.NullPointerException \t AdjustmentForm $ handhand4.actionPerformed(AdjustmentForm.java:150) – razshan

答えて

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()メソッドを使用したくないのは、その方法が文字列に間違った改行文字を含む可能性があるからです。

+0

感謝しました。 – razshan

0

あなたが代わりに次の操作を行うことができます:

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

write()メソッドを使用して、ライターにテキスト領域からテキストを書くことができます。

+0

コンパイルが正常に実行されますが、上記のエラーが発生しました。 – razshan

関連する問題