Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755

    premere un JButton premendo "invio"

    ho un programma con una serie di JButton...vorrei fare in modo che quando l'utente preme "invio" sulla tastiera viene premuto un JButton "ok"
    come fare?
    ho in mente qualcosa tipo KeyEvent ma solitamente sono tutti comandi che si avviano premendo un tasto insieme a "CTRL" o "ALT" io vorrei che si generasse l'evento premend semplicemente "INVIO"

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Sei all'interno di un JFrame o una JDialog?
    Va beh, comunque se l'oggetto che ti fa da finestra ha un getRootPane, allora puoi:
    codice:
    // container è il JFrame principale o il JDialog.
    JRootPane rootPane = container.getRootPane();
    rootPane.setDefaultButton(okButton);
    Dovrebbe funzionare.

    Se hai tempo / voglia o se non l'hai già fatto, dai una lettura a questo link
    al volante son nervoso

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    mi trovo in una JFrame...e poi ho un container
    codice:
    Container contPane=this.getContentPane();
    this è la frame

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Originariamente inviato da zipangulu
    mi trovo in una JFrame...e poi ho un container
    codice:
    Container contPane=this.getContentPane();
    this è la frame
    codice:
    JRootPane rp=this.getRootPane();
    non dovrebbe darti problemi.
    al volante son nervoso

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    funziona!grazie!

    ma scusami mi spieghi cosa fa qst frammento di codice che mi hai postato?
    codice:
    JRootPane rootPane=this.getRootPane();
    rootPane.setDefaultButton(okButton);

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Originariamente inviato da zipangulu
    funziona!grazie!

    ma scusami mi spieghi cosa fa qst frammento di codice che mi hai postato?
    codice:
    JRootPane rootPane=this.getRootPane();
    rootPane.setDefaultButton(okButton);
    Lascio la spiegazione a chi è più ferrato in materia di me.
    A grandi linee il JRootPane è il container che per primo si prende gli eventi. E quel metodo gli imposta un pulsante di default, che prende sempre il focus.

    Anche se facendo qualche prova, se c'è un altro pulsante e lo clicchi, il pulsante di default non ha più il focus... e quindi la mia soluzione non è che sia corretta
    al volante son nervoso

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    si in effetti è vero.
    se non si preme nessun altro "bottone" prima,il metodo da te postato funziona...ma se viene premuto un altro bottone il focus passa a quest'ultimo...
    non risolve bene il mio problema,perchè il mio programma ha molti altri JButton

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Originariamente inviato da zipangulu
    si in effetti è vero.
    se non si preme nessun altro "bottone" prima,il metodo da te postato funziona...ma se viene premuto un altro bottone il focus passa a quest'ultimo...
    non risolve bene il mio problema,perchè il mio programma ha molti altri JButton
    Me ne sono accorto.
    A naso direi che si può fare un FocusListener registrato su tutti i componenti in modo che quando uno di questi perde il focus, questi venga registrato di nuovo sul pulsante voluto.
    Però probabilmente c'è un altro metodo più furbo che non conosco, sorry.
    al volante son nervoso

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    quest'ultima mi sembra un'idea fattibile ma un pò...troppo inefficiente e macchinosa...penso/spero ci sia un procedimento più semplice e più diretto...io intanto sto spulciando la documentazione on-line..
    riguardo la classe KeyEvent ho trovato la "field" KEY_ACCEPT
    se settassi al bottone "ok" un qualcosa del tipo un accelerator come si fa ai menu/item(che JButton non ha) con la "chiave" KEY_ACCEPT??

  10. #10
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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.