Guardar campos JTextFields en archivo txt

hola amigos lo que me pasa es que tengo varios JTextFields y necesito que cada vez que yo inserte los datos en los JtextFileds guardarlos en un archivo txt por ejemplo tengo 4 campos llenarlos y enviarlos al archivo esto soy capas de hacerlo pero necesito que me haga esa rutina varias veces segun un contador seran las veces que devo insertar datos en los campos he tratado con bucles pero no me salen un saludo bytes

import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class lap2 extends JFrame implements ActionListener{

private JTextField t1, t2, t3, t4, t5;
private JLabel l1, l2, l3, l4, l5;
private JButton boton;
private static int cont;
private int x = 0;
private static laptop array[];
private ArrayList lista = new ArrayList();
private FileWriter fw;
private PrintWriter pw;

public lap2 (){

super("Example_Class");
setSize(400, 400);
centrarventana();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
setLayout(null);

creargui();

}

private void creargui (){

t1 = new JTextField();
t2 = new JTextField();
t3 = new JTextField();
t4 = new JTextField();
t5 = new JTextField();

l1 = new JLabel("Numero Objetos Laptop");
l2 = new JLabel("Marca");
l3 = new JLabel("Modelo");
l4 = new JLabel("Tamaño Memoria");
l5 = new JLabel("Precio");

boton = new JButton("Listo");

add(l1);
l1.setBounds(10, 20, 150, 20);
add(t1);
t1.setBounds(10, 50, 70, 25);
add(l2);
l2.setBounds(10, 80, 100, 20);
add(t2);
t2.setBounds(10, 110, 150, 25);
add(l3);
l3.setBounds(10, 140, 100, 20);
add(t3);
t3.setBounds(10, 170, 150, 25);
add(l4);
l4.setBounds(10, 200, 100, 20);
add(t4);
t4.setBounds(10, 230, 150, 25);
add(l5);
l5.setBounds(10, 260, 100, 20);
add(t5);
t5.setBounds(10, 290, 150, 25);

add(boton);
boton.setBounds(205, 220, 150, 30);
boton.addActionListener(this);

}

private void contenedor2 (){

}
private void contenedor (){

try {
fw = new FileWriter("Cuentas.txt");
pw = new PrintWriter(fw);

String Marca = t2.getText();
String Modelo = t3.getText();
String Tmemoria = t4.getText();
String Precio = t5.getText();

pw.write(Marca + " " + Modelo + " " + Tmemoria + " " + Precio);

t2.setText("");
t3.setText("");
t4.setText("");
t5.setText("");

pw.close();

} catch (IOException e) {

e.printStackTrace();
}

}

private void centrarventana (){

Dimension pantalla = Toolkit.getDefaultToolkit().getScreenSize();

Dimension ventana = getSize();

setLocation((pantalla.width - ventana.width) /2, (pantalla.height - ventana.height) /2);
}

public void actionPerformed(ActionEvent e) {

if (e.getSource() == boton)
contenedor();
}

}