Classes et paramètre

Résolu
Abasedebasse Messages postés 23 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 27 juillet 2007 - 9 avril 2007 à 18:45
Abasedebasse Messages postés 23 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 27 juillet 2007 - 10 avril 2007 à 16:57
Bonjour,
J'ai cette partie de code dans ma principale :

public class Principale {
    private static Affichage affiche;
    private static Discussion discu;
   
    public static void main(String[] args) {
        affiche = new Affichage();
        discu = new Discussion (affiche);
        discu.start();
    }
}

Mon probleme est que dans mon affichage, j'ai un bouton "Stop" qui est cencé stopper la discussion...Or celle ci comme vous le voyez sur le code est lancé aprés l'affichage, je n'ai donc pas acces aux méthodes de ma classe Discussion...Comment faire donc pour que ce bouton marche ? J'ai bien pensé changer l'odre de déclaration mais c'est impossible car ma classe Discussion a besoin de l'affichage en parametre pour pouvoir envoier et recevoir des données de celui-ci...

Merci de votre aide

6 réponses

gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 2
10 avril 2007 à 16:54
Salut,

Oui, c'est aussi une possiblité et si tu as un bouton démarrer/arrêter. Conceptuellement parlat, ça ne change pas grand chose, vu que c'est toujours depuis ta vue que tu interagis sur ton modèle.

Plus propre, peut être, plus interessant c'est à toi de voir^^

gmi19oj19
3
gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 2
9 avril 2007 à 21:36
Salut,

Je pense que le problème est conceptuel. A vue de nez, ta classe Affichage hérite de JFrame et ta classe Discussion hérite de Thread (ou implemente Runnable, là n'est pas la question).

En gros, tu as ta vue (Affichage) et le modele (Discussion). Ta vue ne connais pas le modele qu'elle affiche, ce qui est un tantinet genant pour ce qui est de la mise à jour (c'est faisable, mais pas vraiment demanière propre)

Bref, ça necessite une modification profonde de ton code, mais perso je ferai un

discu = new Discussion ();
affiche = new Affichage(discu);

Ave un appel à discu.start() dans le constructeur d'Affichage.

En esperant avoir été clair.

gmi19oj19
0
Abasedebasse Messages postés 23 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 27 juillet 2007
9 avril 2007 à 23:35
Je comprend bien ce que tu dis et je pense que c'est en effet un probleme conceptuel mais le probleme que je risque d'avoir c'est que dans ma partie de Discussion qui en fait est un échange Humain Machine, j'ai bien sur besoin d'afficher des choses à l'écran... Or si je déclare la Discussion avant l'affichage, je ne pourrais pas lui mettre en parametre l'affichage et donc je ne pourrais pas avoir acces a toutes mes méthodes d'affichages...comment faire donc ?

merci de ton aide précieuse...
0
gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 2
10 avril 2007 à 07:46
Salut,

Si tu utilises les classes Observer/Observable du JDK et en plaçant un champ toAffiche dans ta classe Discussion, qui correspond à ce que tu dois afficher ensuite, u pourras y accéder pendant ton update() dans Affichage puisque tu auras accès à la discussion.

Après, c'est très facile si tu n'affiches qu du texte, mais si tu dois afficher des choses un peu plus poussées, c'est vite galère je pense...

gmi19oj19
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Abasedebasse Messages postés 23 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 27 juillet 2007
10 avril 2007 à 16:43
Dis moi si je me trompe, mais serait il plus intéréssant et donc plus propre que je lance mon affichage graphique et que dans cette classe (grace a une bouton du style lancer discussion), je crée et lance mon Thread discussion ?

merci de ta réponse
0
Abasedebasse Messages postés 23 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 27 juillet 2007
10 avril 2007 à 16:57
merci de ton aide !
0
Rejoignez-nous