Buona sera
ho scritto questo keyListener
è quando viene cliccato il tasto selezionato si dovrebbe aprire questo framecodice: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) {} }
il keyListener viene agganciato ad un frame principale che contiene delle Jtextfiel e un botton di conferma.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); } }
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)

Rispondi quotando