Salve a tutti , questo è il mio primo messaggio e spero di aver postato correttamente.
Allora sto cercando di creare un piccolo programmino per l'inserimento dei dati degli studenti e dei corsi.
Questi dati dovranno essere salvati in due file separati.
Il problema che non riesco a risolvere è questo:
una volta inseriti i dati, che vengono salvati correttamente, vorrei che le JTextField tornassero pulite, ma la cosa non riesce. Ho provato ad aggiungere nell'actionPerformed del tasto inserisci l'invocazione del metodo repaint(), ma nulla.
Vi posto il tutto il codice e vi ringrazio per i suggerimenti/aiuti che mi darete. (SPERO)

codice:
import javax.swing.*;

public class Main extends JFrame {
    public Main () {
        this.add(new GUICreaFile());
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        new Main();
    }
}
Codice PHP:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.lang.*;
import java.io.*;

public class 
GUICreaFile extends JTabbedPane implements ActionListener throws IOException {
    private static 
Integer matricola = new Integer(1000000);
    private 
JMenu menu;
    private 
JMenuBar menuBar;
    private 
JPanel p1p2;
    private 
JButton inserisci_studinserisci_inseg;
    private 
JLabel label_matrilabel_cognolabel_nomelabel_annoCorsolabel_tasselabel_corsolabel_annoAccalabel_doce;
    private 
JTextField tf_matritf_cognotf_nometf_annoCorsotf_corsotf_annoAccatf_doce;
    private 
JRadioButton sino;
    private 
ButtonGroup gruppoTasse;
    private 
FileWriter sfdf;
    private 
PrintWriter spwdpw;

    public 
GUICreaFile () {
        
//pannello per l'inserimento degli studenti
        
p1 = new JPanel();
        
p1.setLayout(new GridBagLayout());
        
GridBagConstraints gbc = new GridBagConstraints();
        
//grandezza del pannello
        
gbc.weightx 3;
        
gbc.weighty 6;

        
//posizione della Label MATRICOLA
        
gbc.gridx 0;
        
gbc.gridy 0;
        
gbc.gridheight 1;
        
gbc.gridwidth 1;
        
label_matri = new JLabel("Matricola ");
        
p1.add(label_matrigbc);

        
//posizione dell'etichetta MATRICOLA
        
gbc.gridx 1;
        
gbc.gridy 0;
        
gbc.gridheight 1;
        
gbc.gridwidth 1;
        
tf_matri = new JTextField(7);
        
tf_matri.setEditable(false);    //non può essere editata dall'utente
        
tf_matri.setText(matricola.toString());
        
p1.add(tf_matrigbc);

        
//posizione della Label COGNOME
        
gbc.gridx 0;
        
gbc.gridy 1;
        
gbc.gridheight 1;
        
gbc.gridwidth 1;
        
label_cogno = new JLabel("Cognome ");
        
p1.add(label_cognogbc);

        
//posizione dell'etichetta COGNOME
        
gbc.gridx 1;
        
gbc.gridy 1;
        
gbc.gridheight 1;
        
gbc.gridwidth 1;
        
tf_cogno = new JTextField(20);
        
p1.add(tf_cognogbc);

        
//posizione della Label NOME
        
gbc.gridx 0;
        
gbc.gridy 2;
        
gbc.gridheight 1;
        
gbc.gridwidth 1;
        
label_nome = new JLabel("Nome ");
        
p1.add(label_nomegbc);

        
//posizione dell'etichetta NOME
        
gbc.gridx 1;
        
gbc.gridy 2;
        
gbc.gridheight 1;
        
gbc.gridwidth 1;
        
tf_nome = new JTextField(20);
        
p1.add(tf_nomegbc);
        
        
//posizione della Label ANNO DI CORSO
        
gbc.gridx 0;
        
gbc.gridy 3;
        
gbc.gridheight 1;
        
gbc.gridwidth 1;
        
label_annoCorso = new JLabel("Anno di corso ");
        
p1.add(label_annoCorsogbc);

        
//posizione dell'etichetta ANNO DI CORSO
        
gbc.gridx 1;
        
gbc.gridy 3;
        
gbc.gridheight 1;
        
gbc.gridwidth 1;
        
tf_annoCorso = new JTextField(4);
        
p1.add(tf_annoCorsogbc);

        
//posizione della Label PAGAMENTO TASSE
        
gbc.gridx 0;
        
gbc.gridy 4;
        
gbc.gridheight 1;
        
gbc.gridwidth 1;
        
label_tasse = new JLabel("Pagamento Tasse ");
        
p1.add(label_tassegbc);

        
//posizione del RADIO_BUTTON
        
gruppoTasse = new ButtonGroup();
        
si = new JRadioButton("Si");
        
gbc.gridx 1;
        
gbc.gridy 4;
        
gbc.gridheight 1;
        
gbc.gridwidth 1;
        
p1.add(sigbc);

        
no = new JRadioButton("No");
        
gbc.gridx 2;
        
gbc.gridy 4;
        
gbc.gridheight 1;
        
gbc.gridwidth 1;
        
p1.add(nogbc);

        
gruppoTasse.add(si);
        
gruppoTasse.add(no);

        
//posizione dell bottone INSERISCI_STUD
        
inserisci_stud = new JButton("Inserisci");
        
gbc.gridx 2;
        
gbc.gridy 5;
        
gbc.gridheight 1;
        
gbc.gridwidth 1;
        
p1.add(inserisci_studgbc);
        
inserisci_stud.addActionListener(this);


        
//aggiungo il pannello p1 al Tab
        
this.addTab("Studenti"p1);

        
//costruzione del pannello per l'inserimento degli insegnameti
        
p2 = new JPanel();
        
p2.setLayout(new GridBagLayout());
        
gbc.weightx 2;
        
gbc.weighty 6;

        
//posizione della JLabel Corso
        
gbc.gridx 0;
        
gbc.gridy 0;
        
gbc.gridheight 1;
        
gbc.gridwidth 1;
        
label_corso = new JLabel ("Nome Corso");
        
p2.add(label_corsogbc);

        
//posizione della JTextField Corso
        
gbc.gridx 1;
        
gbc.gridy 0;
        
gbc.gridheight 1;
        
gbc.gridwidth 1;
        
tf_corso = new JTextField(20);
        
p2.add(tf_corsogbc);

        
//posizione della JLabel Anno Accademico
        
gbc.gridx 0;
        
gbc.gridy 1;
        
gbc.gridheight 1;
        
gbc.gridwidth 1;
        
label_annoAcca = new JLabel("Anno Accademico");
        
p2.add(label_annoAccagbc);

        
//posizione della JtextField Anno Accademico
        
gbc.gridx 1;
        
gbc.gridy 1;
        
gbc.gridheight 1;
        
gbc.gridwidth 1;
        
tf_annoAcca = new JTextField(4);
        
p2.add(tf_annoAccagbc);

        
//posizione della JLabel Docente
        
gbc.gridx 0;
        
gbc.gridy 2;
        
gbc.gridheight 1;
        
gbc.gridwidth 1;
        
label_doce = new JLabel("Docente");
        
p2.add(label_docegbc);

        
//posizione della JTextField Docente
        
gbc.gridx 1;
        
gbc.gridy 2;
        
gbc.gridheight 1;
        
gbc.gridwidth 1;
        
tf_doce = new JTextField(20);
        
p2.add(tf_docegbc);

        
//posizione del JButton Inserisci_docenti
        
gbc.gridx 1;
        
gbc.gridy 3;
        
gbc.gridheight 1;
        
gbc.gridwidth 1;
        
inserisci_inseg = new JButton ("Inserisci");
        
p2.add(inserisci_inseggbc);
        
inserisci_inseg.addActionListener(this);

        
//aggiungo il tab al frame
        
this.addTab("Insegnamenti"p2);

      try {
            
sf = new FileWriter ("studenti.txt"true);
            
df = new FileWriter ("insegnamenti.txt"true);
            
spw = new PrintWriter(sf);
            
dpw = new PrintWriter(df);
      }
      catch (
Exception e) {
          
System.out.println("errore");
      }
    }

    public 
void actionPerformed(ActionEvent e) {
        
String tmp;

        if(
e.getSource() == inserisci_stud) {
            
tmp tf_matri.getText();
            
spw.print(tmp ", ");
            
tmp tf_cogno.getText();
            
spw.print(tmp ", ");
            
tmp tf_nome.getText();
            
spw.print(tmp ", ");
            
tmp tf_annoCorso.getText();
            
spw.print(tmp ", ");
            if(
si.isSelected())
                
tmp "si";
            else
                
tmp "no";
            
spw.println(tmp ";");
            
matricola++;
            
spw.close();
            
p1.repaint();
        }
        else {
            if(
e.getSource() == inserisci_inseg) {
                
tmp tf_corso.getText();
                
dpw.print(tmp ", ");
                
tmp tf_annoAcca.getText();
                
dpw.print(tmp ", ");
                
tmp tf_doce.getText();
                
dpw.println(tmp ";");
                
dpw.close();
                
p2.repaint();
            }
        }
    }