Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di untamed
    Registrato dal
    Sep 2004
    Messaggi
    830

    [Java] leggere tasti premuti

    Ho iniziato da poco a programmare in Java e avrei la necessità di realizzare un codice che si metta in attesa della pressione di un tasto da parte di un utente. Credo di aver capito di dover usare la classe KeyEvent ma non mi è molto chiaro come fare per mettermi in attesa della pressione del tasto e come fare per "acchiapparlo"...
    Qualcuno mi aiuta?
    "La fede in una missione divina è una delle tante forme di certezza che hanno afflitto la razza umana." - Bertrand Russell

  2. #2
    Utente di HTML.it L'avatar di Linusss
    Registrato dal
    Sep 2002
    Messaggi
    405
    Ciao, è molto semplice, ti crei una classe adibita ad ascoltare la tastiera, per farlo ti basta implementare l'interfaccia KeyListener, la quale essendo un interfaccia ha bisogno che tutti i suoi metodo siano "dichiarati".I suoi metodi sono:
    keyPressed(KeyEvent e)
    keyReleased(KeyEvent e)
    keyTyped(KeyEvent e)
    L'evento che catturano è facile da capire...
    Ti crei quindi una classe come questa(in particolare questa cattura se il tasto D è premuto o no e stama su consolle):
    codice:
    import java.awt.event.*;
    
    public class EventiTastiera implements KeyListener {
    
            public EventiTastiera(){
    	}
    	
    	public void keyPressed(KeyEvent e){
    		if(e.getKeyCode()==KeyEvent.VK_D) System.out.println("Hai premuto il tasto D");
    	}
    	
    	public void keyReleased(KeyEvent e){}
    	
    	public void keyTyped(KeyEvent e){}
    }
    Poi per usarla basta che istanzi un oggetto di questa classe e lo usi come ascoltatore di addKeyListener(KeyListener)
    codice:
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    
    public class Ascolta extends JPanel{
    	public void Ascolta(){
                    setFocusable(true);
                    requestFocusInWindow();
                    EventiTastiera tasto=new EventiTastiera();
                    addKeyListener(tasto);
    	}
    }

  3. #3
    Utente di HTML.it L'avatar di untamed
    Registrato dal
    Sep 2004
    Messaggi
    830
    Perfetto, sei stato chiarissimo.
    Un dubbio però, le righe:
    codice:
    setFocusable(true);
    requestFocusInWindow();
    a cosa servono?
    Mi metto a fare qualche prova... Eventualmente se ho altri dubbi posto qui...
    Grazie mille!!
    "La fede in una missione divina è una delle tante forme di certezza che hanno afflitto la razza umana." - Bertrand Russell

  4. #4
    Utente di HTML.it L'avatar di Linusss
    Registrato dal
    Sep 2002
    Messaggi
    405
    Fanno in modo che quel componente abbia il focus, cioè che sia lui a catturare gli eventi tastiera.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.