2016-04-06 16 views
0

ユーザー情報用に作成されたフォームがあります。テキストファイルに保存するためにJTextFieldsに入力されるデータが必要です。私は、ボタンが押されたときにGUIを構築するこのアクションリスナーを持っています。私は(あなたがテキストフィールドを定義する機能で、あなたの方法であなたのケースでは、あなたの質問に示した)そのようなコードを記述します...データを保存JTextField入力をテキストファイルに保存する

 static class Register implements ActionListener { 

     public void actionPerformed (ActionEvent e){ 
      //Creates new JPanel 
      JFrame rFrame = new JFrame ("Register, Please Enter Your Information."); 
      rFrame.setVisible(true); 
      rFrame.setSize(800,800); 
      JPanel rPanel = new JPanel(new GridLayout(0,2)); 
      rFrame.add(rPanel); 

      //Creates register form 
      JLabel Rfirstname = new JLabel("Firstname: "); rPanel.add(Rfirstname); 
      JTextField firstname = new JTextField(40); rPanel.add(firstname); 
      JLabel Rsurname = new JLabel("Surname: "); rPanel.add(Rsurname); 
      JTextField surname = new JTextField(40); rPanel.add(surname); 
      JLabel Rdob = new JLabel("D.O.B: "); rPanel.add(Rdob); 
      JTextField dob = new JTextField(40); rPanel.add(dob); 
      JLabel Raddress = new JLabel("Address: "); rPanel.add(Raddress); 
      JTextField address = new JTextField(40); rPanel.add(address); 
      JLabel Rpostcode = new JLabel("Post Code: "); rPanel.add(Rpostcode); 
      JTextField postcode = new JTextField(40); rPanel.add(postcode); 
      JLabel Rallergy = new JLabel("Allergy Info: "); rPanel.add(Rallergy); 
      JTextField allergy = new JTextField(40); rPanel.add(allergy); 
      JLabel Rcontact = new JLabel("Contact Details: "); rPanel.add(Rcontact); 
      JTextField contact = new JTextField(40); rPanel.add(contact); 

    } 
+0

ActionListenerを持つボタンを追加し、新しいBufferedWriter(新しいFileWriter(Path_string))を開き、Stringを書き込むためにBufferedWriterのメソッドを使用しますか? –

+0

変数名は大文字で始めるべきではありません。一貫性を保つ!!!フォーラムが間違った名前を間違って強調表示する方法に注目してください。 – camickr

答えて

4

を助ける必要があります。

JTextField firstName=new JTextField(); 
    JButton but=new JButton("Save"); 
    but.addActionListener(e1->{ 
     try{ 
      BufferedWriter bw = new BufferedWriter(new FileWriter("asdf.txt")); 
      bw.write(firstName.getText()); 
      bw.close(); 
     }catch(Exception ex){ 
      ex.printStackTrace(); 
     } 
    }); 

この例では、firstNameのテキストを単に書きます。 さらに、パスを変更する必要があります(Windowsを使用している場合は、パスの代わりに/を使用する必要があります)

+0

ボタンクリックでそれをやりたくない場合は、JTextフィールドへのアクセスがある場所であればどこでもできます。 –

+0

、このエラーを取得する "ラムダ式のパラメータeは、囲み内で定義されている別のローカル変数を再宣言できませんscope "where '(e - > {' – DeeMoMo

+0

私の例では、[保存]をクリックするたびにファイルを上書きします。複数のファイルにサブミットを保存する場合は、パスまたはファイルにいくつかのパラメータを追加することができます。あなたが追加したい場合は、Googleでそれを行う方法を検索することができますが、Stackoverflowでこれに関するいくつかの質問があります。 –

関連する問題