Buona sera
ho scritto questo keyListener
codice:
class KeiListener implements KeyListener {


    public void keyPressed(KeyEvent a) {
        int ch = a.getKeyCode();
        
        if (ch==525){
            FrameRiepilogo.AggiornaRiepilogo(strutturaSportiva);
            FrameRiepilogo.V();
            System.out.println("pressed menu");
            
        }
        
    }


    public void keyReleased(KeyEvent a) {}
    public void keyTyped(KeyEvent a) {}
    
}
è quando viene cliccato il tasto selezionato si dovrebbe aprire questo frame
codice:
public class FrameRiepilogo extends JFrame{
    private static StrutturaSportiva strutturaSportiva;
    private static JTextArea ta = new JTextArea();
    private static JScrollPane a = new JScrollPane(ta);
    private static JFrame frame = new JFrame("Riepilogo");
    


    //private static boolean visible = true;
    
    public static void V(){
        frame.setVisible(true);
    }
    
    public static void AddFrame(StrutturaSportiva s){
        strutturaSportiva = s;    
        frame.setSize(750, 500);    
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    }
    
    
    
    public static void AggiornaRiepilogo(StrutturaSportiva s){
        
         strutturaSportiva = s;            
        frame.setSize(550, 700);        
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.setLocation(816, 0);
            
        ta.setEditable(false);
        ta.append("STADI \n");
        for(int i = 0; i<strutturaSportiva.sizeStadi();i++){
            ta.append(strutturaSportiva.getStadio(i).toStringCompleto()+"\n");
        }
        
        ta.append("\n CALENDARIO \n");
        for(int j = 0; j<strutturaSportiva.sizePartite();j++){
            ta.append(strutturaSportiva.getPartita(j).toStringCompleto()+"\n");
        }
        
        ta.append("\n Clienti \n");
        
        for(int j = 0; j<strutturaSportiva.sizeClienti();j++){
            ta.append(strutturaSportiva.getCliente(j).toString()+"\n");
        }
        
        ta.append("\n Stadi Scontati \n");
        
        if(strutturaSportiva.sizeStadiScontati()==0)
            ta.append(ScontoStadio.toStringS()+"\n");
        
        for(int j = 0; j<strutturaSportiva.sizeStadiScontati();j++){
            ta.append(strutturaSportiva.getStadioScontato(j).toString()+"\n");
        }
        
        ta.append("\n Partite Scontate \n");
        
        
        if(strutturaSportiva.sizePartiteScontati()==0)
            ta.append(ScontoPartita.toStringS()+"\n");
            
        for(int j = 0; j<strutturaSportiva.sizePartiteScontati();j++){
            ta.append(strutturaSportiva.getPartitaScontato(j).toString()+"\n");
        }
        
        ta.append("\n Fascia Giornaliera Scontata \n");
        ta.append(ScontoFasciaGiornaliera.ToString()+"\n");
        
         frame.add(a);
        // frame.setVisible(true);
        
    }


}
il keyListener viene agganciato ad un frame principale che contiene delle Jtextfiel e un botton di conferma.
Dopo aver premuto questo bottone di conferma ,
premendo il tasto '525' vorrei riaprire il FrameRiepilogo ma siccome il focus (credo cosi si dica) si e spostato sul bottone (o quando in modo generico si sposta su una componente) il keyListener non funziona più...come potrei fare in modo che in qualsiasi momento io devo riuscire a far partire il keyListener ?
potreste suggerirmi qualche soluzione (che non comprenda l aggiunta di una qualsiasi componente al frame ne menu ne bottoni ne niente)