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 :

Organiser l'ordre des tabulations dans un GUI


Sujet :

AWT/Swing Java

  1. #1
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut Organiser l'ordre des tabulations dans un GUI
    Bonjour,

    J'ai un petit soucis concernant l'ordre des tabulations dans mon application. J'aimerai pouvoir modifier cet ordre (ce dernier me parrait aléatoire !? ).

    J'ai fait des recherches sur Google. Il existait avant une méthode (maintenant déclassée) : setNextFocusableComponent qu'il faut remplacer par la méthode : setFocusTraversalPolicy.

    Après moultes arrachages de cheveux, je ne l'ai pas comprise. (Je débute).

    Est ce que quelqu'un a déjà utilisé cette méthode ? Si oui, pourrait-il me l'expliquer avec un exemple concret. (genre : un JFrame, qui contient un JPanel, qui contient quelques champs textes).

    Merci.

  2. #2
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Ca me semble pourtant très clair dans le tutoriel de Sun, de plus l'exemple est très bien fait, et ca m'a l'air très simple d'ailleurs à implémenter.

  3. #3
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut
    Bonjour,

    Pourriez-vous me donner le lien vers ce tuto ?
    Je ne l'ai pas trouvé celui là.

    Merci

  4. #4
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 778
    Points
    5 778

  5. #5
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par FredPsy
    Bonjour,

    Pourriez-vous me donner le lien vers ce tuto ?
    Je ne l'ai pas trouvé celui là.

    Merci
    Erf, j'étais sûr de l'avoir mis

    Désolé...

    Le voici : http://java.sun.com/docs/books/tutor...FocusTraversal

  6. #6
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut
    Merci encore.
    Je vais étudier la chose avec plus d'assiduité.

  7. #7
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut
    Bonsoir à tous.

    Bon j'ai essayé le lien et je dois avouer que je n'ai rien compris du tout ( ).

    Est ce q'une âme charitable pourrait m'aider ?

    Merci

  8. #8
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut
    Bonjour,
    je viens encore vous demander votre aide à ce sujet, car
    je n'ai toujours pas compris le principe de ce FocusTraversalPolicy, et
    pourtant j'essaye.

    Ce problème de focus est le seul qui me reste sur mon application (normalement).

    Un peu d'aide Merci.

  9. #9
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 778
    Points
    5 778
    Par défaut
    Tu dois créer un FocusTraversalPolicy qui définit l'ordre de tabulation de tes composants.

    Pour reprendre l'exemple de Sun (cf les liens qui t'ont été donnés)
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    ...
        JTextField tf1, tf2, tf3, tf4, tf5, tf6;
        JTable table;
        ...
        public class MyOwnFocusTraversalPolicy
                     extends FocusTraversalPolicy {
     
            public Component getComponentAfter(Container focusCycleRoot,
                                               Component aComponent) {
                if (aComponent.equals(tf1)) {
                    return tf2;
                } else if (aComponent.equals(tf2)) {
                    return tf3;
                } else if (aComponent.equals(tf3)) {
                    return tf4;
                } else if (aComponent.equals(tf4)) {
                    return tf5;
                } else if (aComponent.equals(tf5)) {
                    return tf6;
                } else if (aComponent.equals(tf6)) {
                    return table;
                } else if (aComponent.equals(table)) {
                    return tf1;
                }
                return tf1;
            }
     
            public Component getComponentBefore(Container focusCycleRoot,
                                           Component aComponent) {
                if (aComponent.equals(tf1)) {
                    return table;
                } else if (aComponent.equals(tf2)) {
                    return tf1;
                } else if (aComponent.equals(tf3)) {
                    return tf2;
                } else if (aComponent.equals(tf4)) {
                    return tf3;
                } else if (aComponent.equals(tf5)) {
                    return tf4;
                } else if (aComponent.equals(tf6)) {
                    return tf5;
                } else if (aComponent.equals(table)) {
                    return tf6;
                }
                return tf1;
            }
     
            public Component getDefaultComponent(Container focusCycleRoot) {
                return tf1;
            }
     
            public Component getLastComponent(Container focusCycleRoot) {
                return table;
            }
     
            public Component getFirstComponent(Container focusCycleRoot) {
                return tf1;
            }
        }
    La méthode getComponentAfter() permet d'indiquer quel est le composant suivant en fonction du composant spécifié.

    La méthode getComponentBefore() permet d'indiquer quel est le composant précédant en fonction du composant spécifié.

    La méthode getDefaultComponent() permet d'indiquer quel est le composant qui doit avoir le focus par défaut.

    La méthode getFirstComponent() permet d'indiquer quel est le premier composant dans la séquence de tabulation.

    La méthode getLastComponent() permet d'indiquer quel est le dernier composant dans la séquence de tabulation.

  10. #10
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut
    Merci à tous, j'ai résolu mon problème d'intégration au GUI.

    En fait, j'appellais la classe MyFocus depuis un JPanel et ça ne marche pas, il faut l'appeller depuis la JFrame principale.

    Enfin, après quelques heures, une épine de plus dans le pied en moins.

    Merci

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

Discussions similaires

  1. [AC-2007] Ordre des tabulations dans un état
    Par damsmut dans le forum IHM
    Réponses: 1
    Dernier message: 08/03/2010, 22h12
  2. Ordre de tabulation dans des formulaires
    Par snoopy69 dans le forum Access
    Réponses: 6
    Dernier message: 04/04/2006, 11h13
  3. gérer l'ordre des tabulations dans un formulaire
    Par amigauss dans le forum Langage
    Réponses: 11
    Dernier message: 17/01/2006, 10h43
  4. Ordre des champs dans une table
    Par patapetz dans le forum Outils
    Réponses: 5
    Dernier message: 30/07/2003, 06h53
  5. Taille des tabulations dans un TMemo ?
    Par dergen dans le forum Composants VCL
    Réponses: 2
    Dernier message: 07/01/2003, 19h38

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