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

Applets Java Discussion :

Applet Focus ?


Sujet :

Applets Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2009
    Messages : 88
    Par défaut Applet Focus ?
    Bonjour,
    je suis en train de créer une applet contenant un JTextArea.

    Mon souhait est de déclencher une action quelconque dès que le JTextArea obtient le focus.

    J'ai donc essayer ceci :

    Panal.java
    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
    import javax.swing.*;
    import java.awt.*;
     
    public class Panal extends JPanel{
    	TextAreaWithFocus zoneTexte ;
    	JLabel texte;
     
    	public Panal(){
    		texte = new JLabel("Cliquez ci-dessous avant de commencer à dicter.");
    		add(texte);
    		zoneTexte = new TextAreaWithFocus();
    		add(zoneTexte);
     
    		setBackground(Color.red);
    		setLayout(new FlowLayout());
    		setSize(200,200);
    		setVisible(true);
    	}
    }
    TextAreaWithFocus.java
    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
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
     
    public class TextAreaWithFocus extends JTextArea{
     
    	public TextAreaWithFocus(){
    		addFocusListener(
    			new FocusListener(){
    				public void focusGained(FocusEvent e) {
    					System.out.println("Focus gained");
    				}
     
    				public void focusLost(FocusEvent e) {
    					System.out.println("Focus lost");
    				}
    			}
    		);
    	}
     
    }
    et un applet.java qui fait un "new Panal.java".

    Ici, dès que je vais sur ma page contenant l'applet, je vois dans la console:
    Focus gained
    Focus lost
    Focus gained
    Donc déjà, il me met le focus dessus dès le chargement de la page...
    Avec le temps je me rend compte qu'en fait, c'est lorsque l'applet obtient le focus qu'elle envoit le message et non le TextAreaWithFocus.

    J'ai du faire une petite erreur, mais je ne la vois pas!
    Merci d'avance pour votre temps cérébral utilisé.

    ps: sinon, s'il y a moyen que l'applet n'obtienne pas le focus dès le chargement de la page, ça me va aussi

  2. #2
    Membre expérimenté Avatar de erictoguem
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 150
    Par défaut
    En fait sur ton applet il y'a un seul composant qui peut obtenir le focus, ton textarea, ainsi lorsque l'applet obtient le focus, il le propage au textarea.

    Une astuce pour contourner est d'ajouter avant le textarea un composant qui peut obtenir le focus comme le textfield et mettre sa taille à zero. Comme c'est le premier composant pouvant obtenir le focus ajouter à l'applet, lorsque l'applet aura le focus, il passera à ce dernier et sa taille zero fera qu'on ne le voit pas. Ains tu pourras contourner ton pb

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2009
    Messages : 88
    Par défaut
    Merci beaucoup erictoguem,
    j'avais eu la même idée, mais j'imagine qu'un JLabel ne peut obtenir le focus.
    Je vais donc essayer ça.

    EDIT:
    Effectivement, le JLabel ne suffisait pas. Le JTextField tout court non plus d'ailleurs.
    Il a fallut que je les mette dans un BorderLayout.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    setLayout(new BorderLayout());
     
    texte = new JTextField(0);
    texte.requestFocus();
    add(texte,BorderLayout.NORTH);
     
    label = new JLabel("Compte rendu");
    add(label,BorderLayout.NORTH);
     
    zoneTexte = new TextAreaWithFocus(5,10);
    add(zoneTexte,BorderLayout.CENTER);

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

Discussions similaires

  1. Bug focus d'une JTable dans une Applet
    Par reseau-emploi dans le forum Applets
    Réponses: 1
    Dernier message: 19/04/2008, 16h23
  2. Comment être sure que mon appli prenne le focus ?
    Par AmaX dans le forum Composants VCL
    Réponses: 2
    Dernier message: 21/12/2002, 15h00
  3. [Kylix] applets?
    Par mickywicky dans le forum EDI
    Réponses: 6
    Dernier message: 11/11/2002, 12h02
  4. Créer une fenêtre flottante qui ne peut avoir le focus
    Par BestofMac dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/07/2002, 10h46
  5. focus en C
    Par killpilot dans le forum C
    Réponses: 8
    Dernier message: 19/04/2002, 19h19

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