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

Composants Java Discussion :

[JtextArea] Y accéder à partir d'une autre classe


Sujet :

Composants Java

  1. #1
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    367
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 367
    Points : 100
    Points
    100
    Par défaut [JtextArea] Y accéder à partir d'une autre classe
    bonjour je veux savoir s il existe une quelconque maniere d ecrire su un JTextArea a parir d une autre classe je m explique


    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
     public class ChampTexte() eztends Jframe{
     
    public JTextArea texte
     
     ....... constructeur
            public ChampTexte(){
     
    ........ texte = new JTextArea();
     
    .....
     
    }
     
     
     
    et maintenant ma 2 eme classe
     
    public class EssaieAccder(){
     
     
    }


    voila j aimerais ecrire sur le JTextArea texte a partir de ma classe EssaieAcceder



    Merci d avance



    [Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java

  2. #2
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Bonjour,

    Je suppose que la main lancera cette JFrame ... si j'etais toi, je laisserai le JTextArea en private et le passerai en parametre constructeur de ta classe EssaieAccder ... ainsi, en modifiant ton attribut de ta classe (qui sera le mm que celui passer en parametre du constructeur) tu modifieras ton JtextArea de ta JFrame ^^

    Si ca ne marche pas, essaie de passer ta JFrame en parametre et tu modifie le JTextArea avec une methode que tu auras prealablement créer ... mais mon conseil ca reste quand même de toujours mettre les paramètres en private ... mais c'est un choix personnel
    See you, space cowboy... and if you're satisfied, click on

  3. #3
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    367
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 367
    Points : 100
    Points
    100
    Par défaut
    je part sur la bse de ta 1 ere qui me parais pas mal

    si je passe le JtexteArea en parametre



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class EssaieAccder(){ 
     
             public EssaieAcceder(JTextArea texte){
     
    texte.append("Test********");
     
    }
    est ce ce jtextarea sera le meme que celui de la classe ChamPTexte
    je ne croit pas...

  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    Sisi ce sera bien le meme, car en fait il passe par reference, comme tous les objets en java.

  5. #5
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    Y'a un truc que je comprend pas (parce que je débute). S'il met son JTextArea en private, l'autre classe ne pourra pas le voir et modifier son contenu, si ?? Avec des méthodes accesseur dans la classe où le JTextArea est déclaré oui, mais pas à l'extérieur ou alors je n'ai pas compris cette histoire de private...
    A moins que ce que tu voulais dire c'est créer une instance de EssaieAccder dans la classe ChampTexte et de faire modifier à partir de cette dernière... :

    Nas'

  6. #6
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    367
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 367
    Points : 100
    Points
    100
    Par défaut
    c est bizzard quand je fait sa j ai une erreur NullPointerException

  7. #7
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    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 class ChampTexte() eztends JFrame{
     
    private JTextArea texte ;
    EssaieAcceder ea = new EssaieAcceder();
     
     ....... constructeur
            public ChampTexte(){
     
    ........ texte = new JTextArea();
    ea.modifier(texte, "texte a ecrire");
     
    .....
     
    } 
     
    // puis dans la classe EssaieAcceder
     
    public void modifier(JTextArea jta, String text){
     jta.setText(text);
    }
    Ca pourrait peut-être marcher...

    Nas'

  8. #8
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    367
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 367
    Points : 100
    Points
    100
    Par défaut
    tout a fais sa marche

    mais mon parametre String texte est en fait un message qui change selon un bouton appuyer. ce bouton appartien a la classe EssaieAcceder

    donc en fait le texe provient de EssaieAcceder et change

    a tu une idee de comment parametrer sa

  9. #9
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    Euh... si je reprend mon idée, comme tu as une instance de ta classe EssaieAcceder dans ta classe ChampTexte, tu as accès aux méthodes de cette première.
    Ainsi, tu appelles tes méthodes de la classe EssaieAcceder dans ta classe ChampTexte et tu peux récupérer le texte à modifier, non ?
    Si t'as un truc dans ce style dans ta classe EssaieAcceder :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private String text ;
    // methode pour recuperer
    String getText(){
     return this.text ;
    }
    et dans la classe ChampTexte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ea.modifier(texte, ea.getText());
    Si j'ai bien compris...

    Nas'

  10. #10
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    367
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 367
    Points : 100
    Points
    100
    Par défaut
    oui mais en fais quand le texte dans essaieAcceder change quand j appuie sur un bouton il ne change pas dans Champtexte

  11. #11
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    Pourquoi il ne changerait pas ? Au fait, c'est bien ChampTexte ta classe principale (avec le main()) ?

    Mais sinon, met un 'static' devant le texte qui change. Comme ça, si c'est un problème de différenciation d'objets, y'en aura plus normalement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private static String text ;
    Nas'

  12. #12
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    367
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 367
    Points : 100
    Points
    100
    Par défaut
    oui c est sa champ texte est la principale. pour resumer

    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
    public class ChampTexte() eztends JFrame{ 
     
    private JTextArea texte ; 
    EssaieAcceder ea = new EssaieAcceder(); 
     
     ....... constructeur 
            public ChampTexte(){ 
     
    ........ texte = new JTextArea(); 
    ea.modifier(texte, ea.getText()); 
     
    ..... 
     
    // Fonction main
     
    } 
     
     
     
     
     
     
    public class EssaieAccder(){ 
     
    String text = "le bouton n a pas encore ete appuyer"
     
    private  static String text ; 
    // methode pour recuperer 
    String getText(){ 
     return this.text ; 
    } 
     
     
     
     
    public void modifier(JTextArea jta, String text){ 
     jta.setText(text); 
    } 
     
     
    ....JButton boutton = new JButton();
     
     
     
     
     public void actionPerformed(ActionEvent evt) {
     
     if (evt.getSource() == lireParc ) { 
     
     message = "le bouton a ete appuyer";
     
     }
     
     
     }

    c est a peut pres sa le code mais il ne change vraiment pas

    il m affiche le bouton na pas ete appuyer et quand j appuie ya pas de nouveaux message

  13. #13
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    367
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 367
    Points : 100
    Points
    100
    Par défaut
    j ai tout comme l impression que la class ChampTexte qui est la principale ne se reactualise pas


    Je te remercie pour ta spontaneite

  14. #14
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    Ah ba oui vu le code, elle ne se réactualise pas et c'est normal.
    Vu l'heure tardive, je n'arrive plus trop à réfléchir surtout que je suis débutant. Alors en vrac, dans ta classe EssaieAcceder, déclare un JTextArea.
    (genre, temp). Ensuite, tu lui affecte le JTextArea de ChampTexte (même référence) donc temp sera "égal" à texte. Et tu travailles sur temp directement dans la méthode d'écoute. Vite fait ça donne un truc comme ça :
    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
     
    // dans ChampTexte 
    private JTextArea texte 
    texte = new JTextArea(dim) ; // construire
    ea.tempArea = texte ; // meme reference
     
    // dans EssaieAcceder
    public JTextArea tempAera ;
     
    // ...
     
    public void actionPerformed(ActionEvent evt) {
     
     if (evt.getSource() == lireParc ) {
     
     this.text = "le bouton a ete appuyer";
     modifier(tempArea, this.text); // modification directe
     
     }
    Bon tout ça c'est du bidouillage qui gâche tout à la prog orientée objet. Les professionnels du Java t'aideront certainement mieux demain
    De rien

    Nas'

  15. #15
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    367
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 367
    Points : 100
    Points
    100
    Par défaut
    merci et bonne nuit

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 429
    Points : 475
    Points
    475
    Par défaut
    Je ne suis pas sur d'avoir bien compris. Désolé si la réponse est à côté de la plaque.

    Pour accéder au JTextArea de ChampTexte au sein de la classe EssaieAcceder, il suffit :
    - de passer le JTextArea en paramètre au constructeur de EssaieAcceder;
    - puis de le "sauver" au sein de EssaieAcceder, pour pouvoir y accéder quand on le souhaite.

    Exemple :
    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
    public class ChampTexte {
     
        private JTextArea texte;
     
        public ChampTexte() {
            this.texte = new JTextArea();
        }
     
        public JTextArea getTexte() {
            return this.texte;
        }
     
        public static void main(String[] args) {
            ChampTexte ct = new ChampTexte();
            EssaieAcceder ea = new EssaieAcceder(ct.getTexte());
        }
     
    }
     
    class EssaieAcceder {
     
        JTextArea texte2;   
     
        public EssaieAcceder(JTextArea texte){
            this.texte2 = texte;
     
            JButton bouton = new JButton("mon bouton");
            bouton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent ae) {
                    texte2.setText("nouveau texte");
                }
            }
            );
        } 
    }
    Nicolas

  17. #17
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    367
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 367
    Points : 100
    Points
    100
    Par défaut
    merci sa marche bien


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

Discussions similaires

  1. accéder à variable privée d'une classe à partir d'une autre classe
    Par restapa dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 05/08/2010, 08h56
  2. Accéder aux éléments XAML à partir d'une autre classe
    Par Keitboor dans le forum Silverlight
    Réponses: 4
    Dernier message: 24/02/2009, 14h02
  3. [JUnit] [junit 4] Tests automatique à partir d'une autre classe
    Par Periph dans le forum Tests et Performance
    Réponses: 9
    Dernier message: 28/03/2007, 09h46
  4. Réponses: 10
    Dernier message: 17/11/2006, 15h20
  5. Réponses: 22
    Dernier message: 03/02/2005, 16h43

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