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 :

méthode getDocument() incompréhensible


Sujet :

AWT/Swing Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 140
    Par défaut méthode getDocument() incompréhensible
    Bonsoir !

    Voici un programme trouvé sur le Net. Je ne comprends pas une seule ligne de code.

    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
     
    1.    import javax.swing.*;
    2.    import java.awt.*;
    3.    import java.awt.event.*;
    4.    import javax.swing.event.*;
    5.
    6.     class Fenetre extends JFrame implements DocumentListener
    7.     {
    8.            
    9.          private JTextField saisie, copie;
    10.          
    11.          public Fenetre()
    12.          {
    13.               setTitle("Une fenetre dynamique");
    14.               setSize(300, 100);
    15.               Container c = getContentPane();
    16.               c.setLayout(new FlowLayout() );
    17.               setLocationRelativeTo(this.getParent()); 
    18.               
    19.               saisie = new JTextField(20);
    20.               c.add(saisie);
    21.               saisie.getDocument().addDocumentListener(this);
    22.                            
    23.               copie = new JTextField(20);
    24.               c.add(copie);
    25.               copie.setEditable(false);
    26.               copie.setBackground(new Color(255, 208, 208));
    27.               		  
    28.               setDefaultCloseOperation(3);
    29.          }
    30.          
    31.          public void insertUpdate(DocumentEvent d) 
    32.          { 
    33.               String valeurChamp1 = saisie.getText();
    34.               copie.setText(valeurChamp1);
    35.          }
    36.           
    37.          public void removeUpdate(DocumentEvent d)
    38.          {
    39.               String valeurChamp1 = saisie.getText();
    40.               copie.setText(valeurChamp1);
    41.          }
    42.          
    43.          public void changedUpdate(DocumentEvent d) {}
    44.    }
    45.         
    46.    public class TesterCopieAutomatiqueDeChamp
    47.    {
    48.          
    49.         public static void main(String [] args)
    50.         {
    51.               JFrame f = new Fenetre();
    52.               f.setVisible(true);
    53.         }
    54.    }
    Jusqu'ici, j'ai toujours associé l'objet écouteur à l'objet source de l'évènement en écrivant : nom de l'objet, suivi d'un point, suivi de la méthode addXXXListener(). XXX étant le type d'évènement.

    Ainsi, j'aurais pensé que la ligne 21 serait plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    saisie.addDocumentListener(this);
    Quelle est la signification de getDocument(). Comprends pas !

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 899
    Billets dans le blog
    54
    Par défaut
    Comme tu l'auras sans doute remarque Swing utilise un schema MVC (modele-vue-controller) et plusieurs composants (presque tous en fait) tels la JList, la JTable ou le JTree utilisent des modeles sur lesquels tu peux aussi placer directement des listeners nottament pour savoir quand des donnees ont ete ajoutees ou retirees alors que les composants eux-meme disposent de listeners pour gerer toute la partie graphique (selection, deselection, activation, etc...). Le Document est tout simplement le modele de chacun des AbstractTextComponent et c'est sur lui qu'on doit mettre un DocumentListener charge d'etre notifie des modifications du contenu du champs de saisie. La methode getDocument() retourne le document associe a un JTextField de meme que la methode getModel() retourne le modele associe a une JList ou un JTree.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. incompréhension des méthodes en c#
    Par Simon.HLP dans le forum C#
    Réponses: 5
    Dernier message: 17/02/2015, 17h50
  2. Réponses: 6
    Dernier message: 21/04/2014, 15h14
  3. Réponses: 9
    Dernier message: 19/05/2009, 22h42
  4. argument de méthode incompréhensible.
    Par Nayila dans le forum AWT/Swing
    Réponses: 10
    Dernier message: 24/03/2008, 22h56
  5. Cryptage en C selon la méthode de césat
    Par shenron dans le forum C
    Réponses: 2
    Dernier message: 31/05/2002, 08h22

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