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

Langage Java Discussion :

Appel d'une méthode d'une classe à partir d'une autre


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de AL1986
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 434
    Par défaut Appel d'une méthode d'une classe à partir d'une autre
    Salut,
    J'ai créé une interface (classe Idf) ayant un bouton qui permet de lancer une classe Server (serveur de chat) et un bouton pour la déconnexion.
    Quand j'appuie sur le bouton de connexion, mon seveur est lancé grâce à l'instruction Ce lancement permet l'ouverture de sockets, l'obtention de flux etc.
    Je dispose d'une méthode terminate() dans ma classe Server qui est censée terminer la connexion (fermeture de la socket et des flux).
    J'aimerai que lorsque j'appuie sur le bouton de déconnexion, la méthode terminate() soit appelée sur l'objet Server créé lors de la connexion et je ne vois pas comment faire.
    Mon problème est l'appel de la méthode terminate() de la classe Server à partir de la classe Idf sur l'objet Server créé lors de la connexion.
    Merci pour votre aide.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2005
    Messages : 102
    Par défaut
    Salut,

    Je ne suis pas sûr de vraiment comprendre ce que tu veux faire mais si dans l'implémentation de ton interface Idf, tu as une instance de Server server... A la connexion, tu as :

    Et plus loin, tu auras :

    Est-ce que ma réponse te convient ?

    A plus,
    Mathieu

  3. #3
    Membre chevronné Avatar de AL1986
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 434
    Par défaut
    Citation Envoyé par M@th Voir le message
    Salut,

    Je ne suis pas sûr de vraiment comprendre ce que tu veux faire mais si dans l'implémentation de ton interface Idf, tu as une instance de Server server... A la connexion, tu as :

    Et plus loin, tu auras :

    Est-ce que ma réponse te convient ?

    A plus,
    Mathieu
    pas vraiment, car l'instance du Server doit être lancée lors du clique sur le bouton de connexion.
    Code Java : 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
    public void actionPerformed(ActionEvent ae){
    		if ((ae.getSource() == connect) || (ae.getSource() == connection)){
    			Thread t = new Thread(){
    				public void run(){
    					disconnect.setEnabled(true);
    					disc.setEnabled(true);
    					disconnection.setEnabled(true);
    					connect.setEnabled(false);
    					conn.setEnabled(false);
    					connection.setEnabled(false);
    					cancel.setEnabled(false);
    					can.setEnabled(false);
    					quit.setEnabled(false);
    					new Server();
    				}
    			};
    			t.start();
    		}
    		else if ((ae.getSource() == disconnect) || (ae.getSource() == disconnection)){
    			Thread t = new Thread(){
    				public void run(){
    					disconnect.setEnabled(false);
    					disc.setEnabled(false);
    					disconnection.setEnabled(false);
    					connect.setEnabled(true);
    					conn.setEnabled(true);
    					connection.setEnabled(true);
    					cancel.setEnabled(true);
    					can.setEnabled(true);
    					quit.setEnabled(true);
    //je ne sais pas quoi mettre ici
    				}
    			};
    			t.start();
    		}
    }
    Si je mets un truc du genre Server serv = new Server(); dans mon premier if
    Un appel de serv dans le second ne sera pas reconnu.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 230
    Par défaut
    Bonjour,

    Pourquoi ne pas mettre ton objet Server en variable de classe ?

  5. #5
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 111
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Server serv = null;
    
    public void actionPerformed(ActionEvent ae){
    		if ((ae.getSource() == connect) || (ae.getSource() == connection)){
    			Thread t = new Thread(){
    				public void run(){
    					disconnect.setEnabled(true);
    					disc.setEnabled(true);
    					disconnection.setEnabled(true);
    					connect.setEnabled(false);
    					conn.setEnabled(false);
    					connection.setEnabled(false);
    					cancel.setEnabled(false);
    					can.setEnabled(false);
    					quit.setEnabled(false);
    					serv = new Server();
    				}
    			};
    			t.start();
    		}
    		else if ((ae.getSource() == disconnect) || (ae.getSource() == disconnection)){
    			Thread t = new Thread(){
    				public void run(){
    					disconnect.setEnabled(false);
    					disc.setEnabled(false);
    					disconnection.setEnabled(false);
    					connect.setEnabled(true);
    					conn.setEnabled(true);
    					connection.setEnabled(true);
    					cancel.setEnabled(true);
    					can.setEnabled(true);
    					quit.setEnabled(true);
    
                                                            if(serv != null) serv.terminate();
    
    				}
    			};
    			t.start();
    		}
    }

  6. #6
    Membre chevronné Avatar de AL1986
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 434
    Par défaut
    Citation Envoyé par Benouze Voir le message
    Bonjour,

    Pourquoi ne pas mettre ton objet Server en variable de classe ?
    Citation Envoyé par eclesia Voir le message
    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
    Server serv = null;
    
    public void actionPerformed(ActionEvent ae){
    		if ((ae.getSource() == connect) || (ae.getSource() == connection)){
    			Thread t = new Thread(){
    				public void run(){
    					disconnect.setEnabled(true);
    					disc.setEnabled(true);
    					disconnection.setEnabled(true);
    					connect.setEnabled(false);
    					conn.setEnabled(false);
    					connection.setEnabled(false);
    					cancel.setEnabled(false);
    					can.setEnabled(false);
    					quit.setEnabled(false);
    					serv = new Server();
    				}
    			};
    			t.start();
    		}
    		else if ((ae.getSource() == disconnect) || (ae.getSource() == disconnection)){
    			Thread t = new Thread(){
    				public void run(){
    					disconnect.setEnabled(false);
    					disc.setEnabled(false);
    					disconnection.setEnabled(false);
    					connect.setEnabled(true);
    					conn.setEnabled(true);
    					connection.setEnabled(true);
    					cancel.setEnabled(true);
    					can.setEnabled(true);
    					quit.setEnabled(true);
    
                                                            if(serv != null) serv.terminate();
    
    				}
    			};
    			t.start();
    		}
    }
    J'ai déjà essayé cette approche, cependant l'objet serv reste toujours null.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/06/2014, 12h04
  2. Réponses: 2
    Dernier message: 29/10/2013, 13h19
  3. Réponses: 3
    Dernier message: 20/04/2009, 10h13
  4. Réponses: 6
    Dernier message: 12/02/2008, 15h56
  5. Réponses: 5
    Dernier message: 09/03/2007, 22h14

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