ALP - Aquileia Linux Project

Gruppo Utenti GNU/Linux – Free Software Bassa Friulana
Oggi è 27/04/2017, 11:01

Tutti gli orari sono UTC




Apri un nuovo argomento Rispondi all’argomento  [ 5 messaggi ] 
Autore Messaggio
MessaggioInviato: 16/09/2006, 8:45 
Non connesso
pinguino_crestato
pinguino_crestato

Iscritto il: 28/06/2006, 17:04
Messaggi: 45
Ciao ragazzi! Ho un nuovo problema..
Ho creato una GUI costituita da un JFrame, su cui vi sono collocati dei bottoni.
Alla pressione del bottone start si dovrebbe chiudere il JFrame della GUI e aprire un nuovo Frame (associato a un'altra classe) in una finestra a schermo intero. Tutto questo avviene correttamente. Il problema è che la nuova finestra su cui giace il Frame non risponde al bottone di chiusura (mentre a qullo per ridurre a icona si) e poi l'oggetto Frame di questa classe (che implementa l'interfaccia KeyListener) dovrebbe rispondere a degli eventi da tastiera, ma questo non succede! E' come se non avesse il Focus,mentre invece ce l'ha!
Invece...Se anzichè aprire la finestra dalla GUI la apro direttamente dalla classe che istanza Frame (ossia Game), questo funziona benissimo e la finestra risponde ai comandi!! Vi posto un po di codice:
Codice:
/* Questo è nella classe GUI: alla pressione del tasto star viene nascosto il frame della classe GUI e viene istanziato un nuovo oggetto della classe Game*/
if( src.equals(start) )
                {
                frameOwner.setVisible(false);         
                Game inizio = new Game();               
                }

/*Il costruttore della classe Game inizializza il Frame associato alla
finestra in questo modo:*/
frame = new Frame("Frame capriccioso!"); //frame è dichiarato globale
frame.setLayout(null);
setBounds(0,0,1024,768);
frame.add(this);
frame.setSize(1024,768);
frame.setResizable(false);
//frame.setFocusableWindowState(true); //ho provato anche questo..
frame.setVisible(true);

frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
       
frame.addKeyListener(this);
addKeyListener(this);

Chi mi sa dare una mano d'aiuto??

_________________
Linux Slackware 10.2 - Kernel 2.6


Ultima modifica di caralu il 26/09/2006, 9:52, modificato 1 volta in totale.

Top
 Profilo  
 
 Oggetto del messaggio:
MessaggioInviato: 26/09/2006, 9:52 
Non connesso
pinguino_crestato
pinguino_crestato

Iscritto il: 28/06/2006, 17:04
Messaggi: 45
Finalmente ho risolto!!!!
Dato che dall'interfaccia stavo eseguendo un videogame (e quindi una while su Game che termina solo quando il gioco è finito), quando creavo una nuova istanza di Game per poter lanciare il gioco
Codice:
Game inizio = new Game();
questo, non restituiva nulla all'interfaccia prima di aver concluso il gameLoop()! Quindi l'interfaccia non cedeva il focus (dato che stava ancora eseguendo qualcosa) e il controllo del focus mi veniva restituito ovviamente quando il gioco terminava (a questo punto non mi serviva più!!)..Quindi la soluzione è stata:
fare estendere alla classe (interna a GUI) gestore del KeyListener anche l'interfaccia Runnable e fare implementare il metodo run() affinchè lanciasse il gameLoop() tramite un nuovo thread, in modo tale da eseguire separatamente (tramite il thraed appunto) il gioco restituendo subito il focus all'interfaccia! :tux:

_________________
Linux Slackware 10.2 - Kernel 2.6


Top
 Profilo  
 
MessaggioInviato: 09/02/2007, 9:45 
Non connesso
new_entry
new_entry

Iscritto il: 09/02/2007, 9:41
Messaggi: 1
CIAO caralu,
ho una domanda da porti.

ho letto ciò che hai riportato in questo post.

"Ho creato una GUI costituita da un JFrame, su cui vi sono collocati dei bottoni.
Alla pressione del bottone start si dovrebbe chiudere il JFrame della GUI e aprire un nuovo Frame (associato a un'altra classe) in una finestra a schermo intero. Tutto questo avviene correttamente."

Potresti postare qui il procedimento per aprire un frame (avendo cliccato sul bottone) e chiudere il frame dove è presente il bottone stesso?

Grazie!!


Top
 Profilo  
 
 Oggetto del messaggio:
MessaggioInviato: 04/07/2007, 11:10 
Non connesso
new_entry
new_entry

Iscritto il: 04/07/2007, 11:06
Messaggi: 4
Ho un progetto da scrivere in Java e una gran parte ne ho fatto...

Ora però non so come andare avanti...

Mi potete dare una mano???


Top
 Profilo  
 
 Oggetto del messaggio:
MessaggioInviato: 05/07/2007, 23:58 
Non connesso
Site Admin
Site Admin
Avatar utente

Iscritto il: 18/08/2004, 19:41
Messaggi: 1237
Località: Aquileia
80ciccia grazie per la tua domanda ma il crossposting selvaggio nel Forum ALP non è permesso.

_________________
Davide Tommasin
BLOG di uno qualsiasi
ALP - Aquileia Linux Project
CKF - Canoa Kayak Friuli
Immagine Immagine


Top
 Profilo  
 
Visualizza ultimi messaggi:  Ordina per  
Apri un nuovo argomento Rispondi all’argomento  [ 5 messaggi ] 

Tutti gli orari sono UTC


Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite


Non puoi aprire nuovi argomenti
Non puoi rispondere negli argomenti
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi inviare allegati

Cerca per:
Vai a:  
cron
Powered by phpBB® Forum Software © phpBB Group
Traduzione Italiana phpBBItalia.net basata su phpBB.it 2010
[ Time : 0.079s | 15 Queries | GZIP : Off ]