Salve a tutti, sono 2 giorni che mi sbatto su questo codice, e non riesco a risolvere un problema:

in pratica ho un'interfaccia semplice, con un Jtextfield, un bottone, ed un Jlabel, che dovrebbero prendere il contenuto del TextField, farne un'analisi, per vedere ad esempio se è palindorma, o meno, e stampare nel Jlabel, il risultato.

l'asino casca nel momento in cui faccio il getText() del JTextField, poiché mi prende solo l'input iniziale di default, e se modifico il testo, non me lo prende... Che cosa devo fare?
Premetto che nel codice c'è una bozza di observer che stavo implementando, ma, dato che non riesco a risolvere questo problema, non so come concludere.


codice della classe del textfield
codice:
public class PannelloInput extends JTextField implements IPrendiTesto{

private static final long serialVersionUID = 0; 
private String testo; 

  public PannelloInput() { 
   
         super("itopinonavevanonipoti"); 
  }

  public String getTesto() {
         return this.getText(); 
  }

  public char[] getCaratteri() { 
         return this.getText().toCharArray(); 
  }


}
codice della classe del Jbutton
codice:
public class PannelloRisposte extends JPanel implements Observer{ 

private static final long serialVersionUID = 0L; 
private Palindromia pal= new Palindromia(); 
private ProxyElaboratore elaboratore= new ProxyElaboratore(pal); 
private JButton button; 
private JLabel label= new JLabel(); 

  public PannelloRisposte() { 
      setLayout(new BorderLayout()); 
      label.setPreferredSize(new Dimension(100, 100)); 
      button=new JButton("Verifica!"); 
      add(label, BorderLayout.SOUTH); 
      add(button, BorderLayout.NORTH); 
      
      button.addActionListener(new ActionListener() { 
         @Override 
         public void actionPerformed(ActionEvent arg0) { 
         System.out.println("sì3"); 
         label.setText(elaboratore.risolvi(elaboratore.getCaratteri())); 
         System.out.println("sì4"); 
         } 
      
      });

   }

}