Buongiorno a voi tutti. Sono alle prime armi con le interfacce grafiche Java, e oggi, a titolo di esercizio accademico, ho provato a creare un programma che abbia due aree di testo e un pulsante: inserendo nella prima una stringa di caratteri e premendo il pulsante, il software deve restituire nella seconda il numero di caratteri da cui è costituita la stringa stessa. Il programma non funziona, ma non capisco dove sbaglio: vi posto il codice qui sotto.
codice:
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;


public class FrameDemo extends JPanel {
    
    public static void main(String[] args) {
        String stringa;
        JFrame frame = new JFrame("Conta caratteri");            /*Qui viene creato il form*/
        frame.setSize(400, 100);
        Container c = frame.getContentPane();
        frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
        frame.setLayout(new FlowLayout());
        
        JTextField risultato = new JTextField(9);                //Qui le textarea
        risultato.setEditable(false);
        JTextField ingresso = new JTextField(15);
        c.add(ingresso);
        c.add(risultato);
        //System.out.println("cio");

       String stringa1 = ingresso.getText();
           System.out.println(stringa1);
        JButton conta = new JButton("Conta");
        //conta.addActionListener(null);
        c.add(conta);
        
        conta.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
                int num_caratteri = stringa1.length();
                
                risultato.setText("Caratteri: " + num_caratteri);
            }
        });
        frame.setVisible(true);
    }
    

}
Ho creato una classe sola, e tutto gira nella funzione main (so che non è il massimo, ma è stato lo stesso mio professore a dirci per stavolta di fare così).
Grazie