Bonjour,
Voilà j'ai bien peur que mon problème ne soit pas facile à expliquer mais je vais essayer.
Voici mon main :
La classe AdaptateurSimulation crée deux principaux objets : une fenêtre graphique(SimulationFrame) et un Planificateur qui va lancer une simulation et intergair avec la fenetre graphique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public static void main(String args[] ){ new AdaptateurP.AdaptateurSimulation(); }
Voici comment j'instancie la classe :
si dans le constructeur de Planificatieur je lance directement la méthode simule(), ma simulation se déroule à merveille.
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 public final class AdaptateurSimulation{ private static TacheSimulee racine ; private static Planificateur p ; private static SimulationFrame simulFrame ; public AdaptateurSimulation(){ racine = new TacheSimulee(AdaptateurNF.AdaptateurSimulation.getTacheRacine()); simulFrame = new SimulationFrame(racine); p = new Planificateur(racine); } public static void simuler(){ p.simule(); } }
Par contre je voudrais que cette simulation n'est lieu que sur le clic d'un bouton de mon interface graphique. Je fais donc tout betement sur le clic du bouton un AdaptateurSimulation.simuler () dans ce cas l'application se bloque au niveau d'un wait() dans le déroulement de ma simulation!! Je suis obligée de tuer l'appli car rien ne se passe pas moyen de cliquer, ou de fermer avec la croix. Et bien sûr aucune exception...
Alors voilà je ne comprends pas la différence entre appeler directement simule() dans le constructeur du Planificateur ou l'appeler dans ma méthode simuler() de l'adaptateur. L'instance p est pourtant bien la même!!
J'espère que quelqu'un a compris qq chose a tout ça et a éventuellement une suggestion???
Partager