2017-10-17 10 views
0

私はGUIでユーザー入力を行っています。私の主な目標は、ユーザーが入力してファイル 'file.txt'に送信するものを記録することです。GUI Javaプログラムで出力ファイルが空であるのはなぜですか?

しかし、私がファイルを開くたびに、テキストフィールドにすでに入力したにもかかわらず、空です。それでも空を返します。私はJavaの初心者です。

package testpath; 
import java.awt.*; 
import javax.swing.*; 
import java.awt.event.*; 
import java.io.*; 

public class Testpath extends JFrame { 

    JLabel label; 
    JTextField tf; 
    JButton button; 

    public Testpath(){ 
     setLayout(new FlowLayout()); 

     label= new JLabel("Enter First Name"); 
     add(label); 

     tf=new JTextField(10); 
     add(tf); 

     button=new JButton("Log In"); 
     add(button); 

     event e=new event(); 
     button.addActionListener(e); 
    } 

    public class event implements ActionListener{ 
     public void actionPerformed(ActionEvent e){ 
      try{ 
       String word=tf.getText(); 
       FileWriter stream= new FileWriter("C://Users//Keyboard//Desktop//file.txt"); 
       BufferedWriter out=new BufferedWriter(stream); 
       out.write(word); 
      }catch (Exception ex){} 
     } 
    } 


    public static void main(String[] args) { 
     Testpath gui=new Testpath(); 
     gui.setLocationRelativeTo(null); 
     gui.setVisible(true); 
     gui.setSize(400,250); 
     gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    } 
} 
+0

'catch(Exception ex){}':おそらく、少なくとも例外メッセージをデバッグして見てみるべきでしょう。 "catch everything"(ポケモンキャッチとも呼ばれます)で例外を抑止することは、問題をデバッグするのに役立ちません。 – Pac0

+0

あなたの仲間に感謝します。私はあなたの提案を試みます。 – BlackLotus

答えて

1

ストリームは決して閉じないので、その内容は決してディスクに書き込まれません。

out.write();の後にout.close();と電話するだけです。

ストリームを同時に閉じることなくディスクに内容を書き込む場合は、out.flush();を使用できます。 (ありがとう@Ultraviolet)

+0

うわー!!! Tsskk2..silly私..あなたが仲間を...あなたは本当に私をたくさん助けます。私は蒸気を閉じて気づいていませんでした。本当にありがとう。ありがとうございます – BlackLotus

+0

私は蒸気を閉じるのを本当に忘れました。 – BlackLotus

+1

、またはまだ閉じたくない場合は 'out.flush()'を使うことができます。 – Ultraviolet

関連する問題