2016-04-06 20 views
0

Kullanıcı bilgileri için oluşturulan bir formum var. Bir metin dosyasına kaydetmek için JTextFields'a girilen verilere ihtiyacım var. Düğmeye basıldığında GUI oluşturan bu eylem dinleyici var. ... verilerini kaydetmeye yardıma mı ihtiyacınızJTextField girişlerini metin dosyasına kaydedin

 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

Bir ActionListener ile bir düğme ekleyin, yeni bir BufferedWriter (yeni FileWriter (Path_string)) açın ve Strings yazmak için BufferedWriter yöntemini kullanın? –

+0

Değişken adları bir büyük harf karakteri ile başlamamalıdır.Diğer değişkenleriniz doğru, diğerleri Tutarlı olun !!! Forumun yanlış isimleri yanlış bir şekilde nasıl vurguladığına dikkat edin. – camickr

cevap

4
Ben (eğer söz konusu gösterdi Eğer yönteminde senin durumunda, sizin textfields tanımlamak fonksiyonu olarak) böyle Kod yazardı

:

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(); 
     } 
    }); 

Bu örnekte, sadece İlk Adın Metnini yazarım. Eğer tüm alanları yazmak istiyorsanız, bunlara uymalısınız (ya da bunun gibi bir şey. Ayrıca, yolunuzu değiştirmelisiniz (Windows kullanıyorsanız, aynı zamanda yolunuz için \ yerine/'yi kullanmanız gerekir.)

+0

Eğer bir buton tıklatmayla yapmak istemiyorsanız, JTextfields'ınıza Access'iniz olan her yerde yapabilirsiniz. –

+0

, bu hatayı alma "Lambda ifadesinin e parametresi, bir çevrede tanımlanan başka bir yerel değişkeni yeniden tanımlayamıyor "nerede" (e -> {' – DeeMoMo

+0

) Örneğimde, kaydet'i her tıkladığınızda dosyanın üzerine yazarsınız. Gönderileri birkaç dosyaya kaydetmek isterseniz, yol veya dosya adına bazı Parametreler ekleyebilirsiniz. Eklemek isterseniz, google'da nasıl arama yapacağınızı araştırabilirsiniz, bununla ilgili olarak Stackoverflow hakkında birkaç soru var. –

İlgili konular