IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

[Focus] changer le focus sur "entree" [Trucs & Astuces]


Sujet :

AWT/Swing Java

  1. #1
    Membre expérimenté
    Inscrit en
    Septembre 2003
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 174
    Par défaut [Focus] changer le focus sur "entree"
    Bonjour,
    J'ai une application qui a une interface graphique en swing. En gros, elle comprend des JFormattedTextField qui sont disposes sur des JPanel.
    Mon probleme c'est que les utilisateurs voudraient que lorsqu'ils pressent "entree", il y ait le meme comportement que lorsqu'ils pressent "Tab", c'est-a-dire que le prochain composant "focusable" obtienne le focus.
    Je pensais ajouter un ActionListener sur mes champs texte mais comment connaitre le prochain composant "focusable" (getNextFocusableComponent() etant depracated) ?
    Est-il possible de declencher l'evenement "onTabulation" ?
    merci d'avance pour vos reponses,
    sylvain_2020

  2. #2
    Membre éclairé
    Avatar de rozwel
    Inscrit en
    Mars 2002
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 324
    Par défaut
    T'as essayé avec ça?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FocusManager.getCurrentManager().focusNextComponent(composantActuel);

  3. #3
    Membre expérimenté
    Inscrit en
    Septembre 2003
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 174
    Par défaut
    Citation Envoyé par rozwel
    T'as essayé avec ça?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FocusManager.getCurrentManager().focusNextComponent(composantActuel);
    Je n'avais pas essaye, ni meme pense ... ca marche tres bien.

    merci beaucoup

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Février 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 119
    Par défaut
    Salut roswel,

    Ta solution marche, et je suis pas la pour te contredire.
    Mais pour éviter des ActionListener sur chacun des composants, un truc dans le genre serait pas mieux ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    	public static void main(String[] args) {
            FocusManager fm = FocusManager.getCurrentManager();
            Set keys = fm.getDefaultFocusTraversalKeys(FocusManager.FORWARD_TRAVERSAL_KEYS);
            Set mutableKeys = new HashSet(keys);
            KeyEvent ke = new KeyEvent(new Component(){}, KeyEvent.KEY_PRESSED, 0, 0, KeyEvent.VK_ENTER, (char)0, KeyEvent.KEY_LOCATION_NUMPAD);
     
            mutableKeys.add(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0));
            fm.setDefaultFocusTraversalKeys(FocusManager.FORWARD_TRAVERSAL_KEYS, mutableKeys);
     
            JFrame f = new JFrame("Fenetre de test");
            f.setLayout(new GridLayout(3,4));
            for(int i=0; i<12; ++i)
                f.add(new JTextField(20));
     
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.pack();
            f.setLocationRelativeTo(null);
            f.setVisible(true);
        }
    Je dis que la touche ENTER fait la même chose que la touche TAB. Tu met ça au début du programme et c'est bon pour tout ...

  5. #5
    Membre éclairé
    Avatar de rozwel
    Inscrit en
    Mars 2002
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 324
    Par défaut
    Salut Braim lol
    Naaaaan c'est nuuuul !!!
    Nan je plaisante, c'est une très bonne idée ! Pas très chirurgical mais dans son cas ça peut le faire...

    Merci pour ce complément très cher confrère

    PS : si tu pouvais juste éviter de te gourrer dans mon pseudo ça serait bien aimable

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Février 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 119
    Par défaut
    Bonsoir rozwel,
    Excuse pour ton pseudo.
    Pas très chirurgical ? c'est pas assez précis ?

  7. #7
    Membre éclairé
    Avatar de rozwel
    Inscrit en
    Mars 2002
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 324
    Par défaut
    Solution idéale quand tu veux appliquer ce changement à toute ton application, moins quand c'est juste bon pour un formulaire dans une boîte de dialogue... c'est tout ce que je voulais dire...

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Février 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 119
    Par défaut
    Citation Envoyé par rozwel
    Solution idéale quand tu veux appliquer ce changement à toute ton application, moins quand c'est juste bon pour un formulaire dans une boîte de dialogue... c'est tout ce que je voulais dire...
    Ah ouaip juste.
    Moi je pensais que c'étais pour toute l'application qu'il voulais faire ça.

  9. #9
    Membre expérimenté
    Inscrit en
    Septembre 2003
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 174
    Par défaut
    Citation Envoyé par Braim
    Citation Envoyé par rozwel
    Solution idéale quand tu veux appliquer ce changement à toute ton application, moins quand c'est juste bon pour un formulaire dans une boîte de dialogue... c'est tout ce que je voulais dire...
    Ah ouaip juste.
    Moi je pensais que c'étais pour toute l'application qu'il voulais faire ça.
    Et c'est surement pour ca que tu es moderateur Braim, c'est exactement ce que je voulais ! Je prends, merci a tous les deux !

  10. #10
    Membre expérimenté
    Inscrit en
    Septembre 2003
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 174
    Par défaut
    Bonjour,
    Juste au cas ou certains tomberaient sur ce post :
    Citation Envoyé par JavaDoc de FocusManager
    This class has been obsoleted by the 1.4 focus APIs. While client code may still use this class, developers are strongly encouraged to use java.awt.KeyboardFocusManager and java.awt.DefaultKeyboardFocusManager instead.
    Il suffit juste de remplacer le code de rozwel par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    				KeyboardFocusManager.getCurrentKeyboardFocusManager().focusNextComponent(composantActuel);
    sylvain_2020

  11. #11
    Membre éclairé
    Avatar de rozwel
    Inscrit en
    Mars 2002
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 324
    Par défaut
    Merci beaucoup pour cette correction sylvain c'est noté

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#][.Net 2.0] donner focus à Combobox, après click sur treeview
    Par Harry_polin dans le forum Windows Forms
    Réponses: 3
    Dernier message: 17/02/2006, 22h27
  2. [C#] Changer le focus avec la touche return
    Par sblanc74 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 01/10/2003, 18h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo