Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di caralu
    Registrato dal
    Sep 2004
    Messaggi
    135

    [JAVA] settare il focus

    Ciao a tutti!
    Come mai se su un frame che implementa un KeyListener eseguo questi metodi:
    codice:
    frame.setFocusable(true);
    frame.setVisible(true);
    quando eseguo il frame quest'ultimo non ha il focus e quindi non "ascolta" gli eventi da tastiera, ma devo dargli il focus con un clic del mouse sulla finestra? Con il codice che ho postato su non dovrebbe settarmi il focus di default?
    Linux Slackware 11 - Kernel 2.6.18

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    1) Il metodo setFocusable() non imposta il focus, ma la capacità dell'oggetto di ricevere il focus
    2) Credo che il componente che ha il focus di default sia il Container.

    Per impostare il focus si usa il metodo requestFocus()


    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

  3. #3
    Utente di HTML.it L'avatar di caralu
    Registrato dal
    Sep 2004
    Messaggi
    135
    Originariamente inviato da LeleFT
    1) Il metodo setFocusable() non imposta il focus, ma la capacità dell'oggetto di ricevere il focus
    2) Credo che il componente che ha il focus di default sia il Container.
    Per impostare il focus si usa il metodo requestFocus()
    Non va...Forse perchè avvio il mio Frame da un'altro frame??
    Linux Slackware 11 - Kernel 2.6.18

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    No... credo che il motivo sia il fatto che le finestre solitamente non prendono il focus.

    Proverei ad aggiungere un KeyListener al Container.


    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

  5. #5
    Utente di HTML.it L'avatar di caralu
    Registrato dal
    Sep 2004
    Messaggi
    135
    Originariamente inviato da LeleFT
    No... credo che il motivo sia il fatto che le finestre solitamente non prendono il focus.
    Proverei ad aggiungere un KeyListener al Container.
    Ha già un KeyListener!!!
    Linux Slackware 11 - Kernel 2.6.18

  6. #6
    Prova con questo codice:

    //nella classe che importa JFrame
    this.addWindowListener(new WindowAdapter() {
    public void windowActivated(WindowEvent e) {
    //input è l'oggetto su cui si vuole impostare il focus alla creazione del frame
    input.requestFocusInWindow();
    }
    });


    ciao

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    Originariamente inviato da fcorsa
    Prova con questo codice:

    //nella classe che importa JFrame
    this.addWindowListener(new WindowAdapter() {
    public void windowActivated(WindowEvent e) {
    //input è l'oggetto su cui si vuole impostare il focus alla creazione del frame
    input.requestFocusInWindow();
    }
    });


    ciao
    La discussione è dell'anno scorso... non tirare su discussioni vecchie e morte.


    Chiudo.

    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

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.