Pb d'utilisation de méthode d'une autre class

vincesc Messages postés 4 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 24 juillet 2003 - 18 juil. 2003 à 08:56
vincesc Messages postés 4 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 24 juillet 2003 - 18 juil. 2003 à 14:07
bonjour
mon problème est le suivant :
je créé un logiciel de mise à jour de page html qui ont toutes la même structure.
j'utilise pour l'instant 3 class :
- Class 1 : un JPanel, listeners, méthodes, et appel de la deuxième et la troisième class.
- Class 2 : un JPanel et des méthodes (que j'arrive à appeler et a utiliser depuis la 1ere class).
- Class 3 : une JMenuBar, et ses listeners.

Je n'arrive pas à utiliser une méthode de la 2eme class appelée depuis un listener de la 3eme class, pour agir sur la 2eme class. (les 2 et 3eme class sont appelées dans la 1ere)
Sachant que j'ai encore un JPanel à ajouter, est ce que je continu sur la même voie ? Ou bien vaut-il mieux que je n'utilise qu'une class ?
(ça peut paraître un peu null comme question, mais j'avoue que malgrès ce problème d'utilisation de méthode d'une autre class appelée dans la class principale, c'est drolement plus pratique d'avoir des "petites" class qu'une seule grosse quand il faut debuguer...)
Je voulais tout mettre dans la même class, mais avec notepad et jdk1_3 comme seul outils de développement, ça fait très rapidement un beau bazard...

merci de vos réponses ou de vos avis.
vincent

2 réponses

CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
18 juil. 2003 à 11:45
Comment fais-tu comminiquer tes instances ? (autre que les listener)

Comment se matérilise le problème ? (Exceptions ?)

Une solution de communication en tre instance:
class c1
{
private c2 i2;
public c1()
{
i2= new c2(this);
}

public void communiquer()
{
}

public void communiquer_c2()
{
i2.communiquer();
}
}

class c2
{
c1 i1;
c2(c1 i1)
{
this.i1= i1;
}

public void communiquer()
{
c1.communiquer();
}
}

...

c1 i1= new c1();

i1.communiquer_c2();


Core Breaker :)
0
vincesc Messages postés 4 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 24 juillet 2003
18 juil. 2003 à 14:07
Je te remerci pour le code, je vais essayé ça. Pour l'instant, j'utilise la méthode constructeur des class (qui sont vide)que j'appel :

class2 aaa = new class2();

puis, je recupère les méthodes :

JPanel pano2 = new aaa.method1();
JMenuBar menu = new aaa.method2();

jusque là, ça marche. Ensuite, je fais pareil avec la deuxieme class. Puis les problèmes surviennent lorsque j'essais d'utiliser une methode que je récupère dans la class3 sur la class2. Comme message, j'ai souvent utilisation d'une méthode static dans une méthode non-static. Ca arrive aussi quand j'essais de définir une methode par l'appel d'une autre :

public efface_tout()
{
aaa.erase_all();
}

J'ai essayé en mettant l'instanciation de la class en public, ou en la resdifinissant à chaque fois, mais ça ne passe pas. En public, ça me donnait des erreurs static/non-static, et en redéfinissant à chaque fois, les méthodes ne s'executaient pas. Ce que j'ai fait, c'est tout d'abord, définir des classes indépendantes les unes des autres afin de pouvoir tester les méthodes, et elles fonctionnaient. Puis, je les ai appelée (tout du moins, j'essais) dans la class principale.
Je vais essayé d'abord avec ton exemple, et si je n'y arrive pas, je vais essayer de tout mettre dans une seule class (par contre là, ça va faire un sacrément gros fichier, et les méthodes les plus compliquées sont encore à venir avec la gestion du texte du fichier html...)

merci
vincent
0
Rejoignez-nous