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)