2016-08-11 8 views
0

私はGUIを作成しましたが、テキストファイルをGUIのTextAreaに読み込んでいます。TextFieldとButtonからファイルに書き込むActionListenerクラス

私はユーザーがファイルに書き戻せるようにしようとしています。 TextField(ユーザーがテキストを入力するため)とボタン(actionListenerを追加したい)があり、TextFieldにテキストが入力され、選択されたボタンがファイルに書き戻されるようにします。

これは私が今までに持っているコードですが、ボタンを選択するとファイルとテキスト(読み込まれているもの)がクリアされ、JTextAreaにあったものは空になります。

class WriteToFile implements ActionListener { 
     public void actionPerformed(ActionEvent e) 
       { 
        try 
        { 
         FileWriter writer = new FileWriter("File.txt"); 
         BufferedWriter bw = new BufferedWriter(writer); 
         txtSearch1.write(bw); 
         bw.close(); 
         area.setText(""); 
         area.requestFocus(); 
        } 
        catch(Exception e2) {} 
       } 

    } 
+2

? – resueman

+1

ようこそスタックオーバーフロー。すでにコードを書いているようです。あなたの質問に関連する部分を投稿してください。また、あなたの質問は何ですか?どの部分に問題がありますか? 'ActionListener'を作る方法を知っていますか?ファイルを開いて書き込む方法を知っていますか?これらの両方は十分に文書化されており、Google検索が役立ちます。 –

+0

この行のため、テキスト領域が空になりました。 'area.setText(" "); ' – FredK

答えて

0

最初のファイルからの読み取りすべて、そのファイルへの書き込み:あなたはそれとのトラブルを与えて何

File file = new File("TestFileWriter.txt"); 
    StringBuilder fileText = new StringBuilder(); 
    // Read the file first, then write to it 
    try (BufferedReader br = new BufferedReader(new FileReader(file))) { 
     String line; 

     while((line = br.readLine()) != null) { 
      fileText.append(line); 
      fileText.append(System.lineSeparator()); 
     } 
    } 

    try (BufferedWriter bw = new BufferedWriter(new FileWriter(file))) { 
     bw.write(fileText.toString()); 
     bw.write("New text to add on the next line"); 
    } 
+0

TextFieldとJButtonからファイルに書き込んでいます。これはTextAreaに表示されます(ファイルをTextAreaに読み込んだので)。私はそれをどうやってやるのか、あなたの上記の答えに似ていますか? –

+0

あなたがやろうとしていることが混乱していると思います。既にファイルが作成されています。もう一度書きたいと思う。ユーザーはTextFieldにテキストを入力し、Buttonを押すとそのテキストをファイルに書き込み/追加します。それはあなたがやろうとしていることですよね? – Dominic

+0

はい。ファイルは既に存在し、テキストを含んでいます。私はすでにテキストエリアにファイルを読み込んでいます。テキストフィールドとボタンがあり、ユーザーはファイルに書き込むことができ、ボタンを選択するとファイルに書き込み/追加します。 –

関連する問題