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

SWT/JFace Java Discussion :

SWT Text force le focus


Sujet :

SWT/JFace Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2011
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 142
    Par défaut SWT Text force le focus
    Bonjour,

    Je voudrais qu'une zone de texte soit toujours sélectionnée.

    J'ai essayé avec la méthode :

    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
    FocusListener focusListener = new FocusListener() {
     
    			@Override
    			public void focusGained(FocusEvent arg0) {
    				// TODO Auto-generated method stub
     
    			}
     
    			@Override
    			public void focusLost(FocusEvent arg0) {
    				// TODO Auto-generated method stub
    				text.setFocus();
    			}
     
    		};
    		text.addFocusListener(focusListener);
    ou bien avec t.forceFocus();

    Rien ni fait...

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 162
    Par défaut
    La méthode FocusLost s'activera uniquement si le composant perd le focus. Mais pour perdre le focus, il faut déjà l'avoir.

    Il faut que tu initialises le gain du focus dans le champ Text à la fin de la construction de ta vue.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2011
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 142
    Par défaut
    Le problème c'est que j'ai beau faire un setFocus ou forceFocus, cela ne change rien, la zone de texte n'est pas sélectionnée...

    C'est bien cette méthode qu'il faut utiliser ?

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 162
    Par défaut
    Oui oui, cela dit je sais que dans la pratique, j'ai déjà eu des soucis avec cette méthode.

    Cela vient peut-être de moi, car je l'avais peut-être mal utilisée, mais c'est comme si le focus ne pouvait pas être attribué à un composant, car par défaut il était donné à un autre.

    Il semble, d'après mes souvenirs, que j'avais résolu ce soucis, en lançant un focus sur chacun des éléments pères de mon élément, puis sur l'élément voulu, pour que le focus soit pris en compte.

    En espérant que cela puisse t'aider.

  5. #5
    Membre Expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Par défaut
    Salut,

    Un exemple vaut mieux qu'un long discour:
    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
    Display display = new Display();
    Shell shell = new Shell(display);
    shell.setLayout(new GridLayout());
    shell.setText("Browser & Layout example");
     
    Composite composite = new Composite(shell, SWT.BORDER);
    GridData fillData = new GridData(SWT.FILL, SWT.FILL, true, true);
    composite.setLayoutData(fillData);
    GridLayout layout = new GridLayout(2, true);
    composite.setLayout(layout);
     
    Button button1 = new Button(composite, SWT.PUSH);
    button1.setText("Bouton 1");
     
    Button button2 = new Button(composite, SWT.PUSH);
    button2.setText("Bouton 2");
     
    GridData entireRowData = new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1);
    Composite sonComposite = new Composite(composite, SWT.BORDER);
    sonComposite.setLayoutData(entireRowData);
    sonComposite.setLayout(new GridLayout());
     
    Text button = new Text(sonComposite, SWT.BORDER);
    String texte = "Test Text";
    button.setText(texte);
    button.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
    // button.forceFocus();
    button.setFocus();
     
    shell.setMaximized(true);
    shell.open();
    while (!shell.isDisposed())
    {
    	if (!display.readAndDispatch())
    		display.sleep();
    }
    display.dispose();
    Les 2 fonctionnent (que ce soit forceFocus() ou setFocus()).

    @solika: Si ça ne marche toujours pas, il faudrait que tu nous postes un exemple plus parlant que le listener...

    Voilà, à+
    Gueritarish

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2011
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 142
    Par défaut
    Bon c'est résolu...

    J'ai fait un appel après le dispose() puis j'ai intégré un browser au lieu de lancer firefox.

    Merci.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/01/2009, 14h56
  2. [SWT] Text & Thread
    Par BaBeuH dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 04/06/2007, 14h38
  3. [SWT/TEXT] Forcer mon text à être un long
    Par sanchou dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 14/05/2007, 09h43
  4. SWT texte animé
    Par sroux dans le forum SWT/JFace
    Réponses: 4
    Dernier message: 04/01/2007, 13h50
  5. Quand un Text perd le focus
    Par feed_our_vision dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/06/2006, 06h39

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