Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    assegnare un tasto della tastiera a un JButton

    ciao ragazzi, ho un form con diversi campi e vorrei assegnare ad un JButton la pressione di un tasto della tastiera (facciamo INVIO). l'effetto dovrebbe essere quello che, avendo finito di inserire i dati nei vari campi, premo invio sulla tastiera ed eseguo l'azione assegnata al bottone. ho provato in tutti i modi, ma non c'e' stato verso di fare quello che volevo:

    usando bottone.setMnemonic('S'), il bottone si attiva si, ma con la pressione ALT+S, mentre io vorrei che si attivasse senza dover premere alt. credo che per setMnemonic sia normale in quanto si usa nei menu in genere, che funzionano proprio con alt.

    ho preso dunque la mia classe assegnata come ActionListener al bottone e gli ho fatto implementare anche KeyListener. sul bottone chiamo poi i metodi addActionListener e addKeyListener. potrei risolvere con un doClick sulla sorgente del KeyEvent castata a JButton come ho letto su un esempio (magari proprio qui), ma con un po' di print a video ho scoperto che non riesco mai ad "entrare" nei metodi keyPressed, keyReleased e keyTyped, come se non venissero riconosciuti.

    un po' di codice per spiegarci meglio:
    codice:
    public class Login implements ActionListener, KeyListener
    {
    	
    	public void actionPerformed(ActionEvent ae)
    	{
                  /*faccio qualcosa quando premo il bottone*/
            }
    
    	public void keyPressed(KeyEvent ke)
    	{
                  System.out.println("qui non entro mai :(");
            }
    
    	public void keyPressed(KeyEvent ke)
    	{
                  System.out.println("neanche qui :(");
            }
    
    	public void keyPressed(KeyEvent ke)
    	{
                  System.out.println("e nemmeno qui :(");
            }
    
    }
    
    // dove costruisco la GUI:
    
    JButton bottone = new JButton("bottone");
    Login login = new Login()
    bottone.addActionListener(login);
    bottone.addKeyListener(login)

    cosa dovrei fare?
    and the black stones under my bare feet
    cold and smooth like her milk-white palm
    and the silence which falls upon this shore
    resounds now louder than oncoming storm
    for all is gone

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: assegnare un tasto della tastiera a un JButton

    Originariamente inviato da xplorer87
    ciao ragazzi, ho un form con diversi campi e vorrei assegnare ad un JButton la pressione di un tasto della tastiera (facciamo INVIO).
    Se vuoi puoi farlo diventare il pulsante di "default".
    Vedi il metodo setDefaultButton() della classe JRootPane (nota, un JRootPane puoi ottenerlo da un JFrame, JDialog e alcuni altri top-level container).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    perfetto, in ogni caso ho risolto con una sciocchezza: bastava assegnare a ogni textfield del form (e non al bottone) il KeyListener

    grazie comunque
    and the black stones under my bare feet
    cold and smooth like her milk-white palm
    and the silence which falls upon this shore
    resounds now louder than oncoming storm
    for all is gone

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.