Ciao a tutti vorrei fare un gioco in java (non un applet), e vorrei usare i tasti, come è possibile associare il KeyListener ad un JFrame o JWindow?
Grazie anticipatamente.
Ciao a tutti vorrei fare un gioco in java (non un applet), e vorrei usare i tasti, come è possibile associare il KeyListener ad un JFrame o JWindow?
Grazie anticipatamente.
Così...
Ciao.codice:public class MiaClasse extends JFrame { public MiaClasse() { addKeyListener( new KeyAdapter() { ... // metodi che si intende implementare di KeyListener }); } }
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Editato e corretto.codice:JFrame frame = new JFrame(); frame.addKeyListener(<oggetto KeyListener>); poi ridefinisci i metodi seguenti all'interno della classe dell'<oggetto KeyListener>: public void keyPressed(KeyEvent e) { // codice } public void keyReleased(KeyEvent e) { // codice } public void keyTyped(KeyEvent e) { // codice }
Altrimenti come suggerito da LeleFT, utilizzi la classe
KeyAdapter come da esempio.
Slack? Smack!
Grazie, io facevo cosi ma nn funzionava:
public class Game extends JFrame implements ActionListener,KeyListener{
....
this.addKeyListener(this);
Loops, è corretto quello che hai scritto,
ma all'interno di quella classe devi ridefinire
tutti i metodi delle interfacce che implementi.
Slack? Smack!
ok grazie x l aiuto
Altra soluzione è quella di scrivere una classe che implementa KeyListener e di creare un oggetto di tale classe da utilizzare come KeyListener. In questo modo puoi usare più istanze dello stesso ascoltatore (oppure lo stesso ascoltatore) su più oggetti diversi.
Ciao.
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Grazie LeleFT, faro' qualche prova
Ho trovato perche nn funzonava, dovevo dargli il focus:
jf.requestFocus ();