CvanderStoep / Genetic_Swarm

1 stars 0 forks source link

Input form - run simulation.main #4

Closed CvanderStoep closed 5 years ago

CvanderStoep commented 5 years ago

Lex, Ik heb een input form gemaakt en ik probeer vanuit de run button de "routine" simulation.main aan te roepen. Volgens mij maak ik hier een denkfout?

Ik de variabelen al in de constructor gezet, maar toch krijg ik een leeg scherm zonder actie te zien?

Ideeen?

CvanderStoep commented 5 years ago

aanvulling: het programma runt wel, maar laat pas op het allerlaatst het eindscherm zien.

lexvanderstoep commented 5 years ago

Ik denk dat het fout gaat omdat er twee forms worden getekend vanuit een thread.

Als je het input programma opstart, dan wordt er een thread gestart die bij dat input venster hoort. Deze regelt dingen als het tekenen van het venster, luisteren naar events, etc. Als je vanuit het input venster, een ander venster gaat aanmaken (StdDraw aanroepen maakt een nieuw venster aan), dan gaan dingen raar doen.

Wat je kan proberen is om een nieuwe thread aan te maken en vanuit daar de Simulation.main aanroepen. Zie hier. Je zoekt denk iets in de vorm van het volgende:

new Thread(() -> { // code goes here. }).start();

CvanderStoep commented 5 years ago

yep, dit lost het issue op. Met letterlijk jouw 2 regels code om het commando simulation.main() (ik heb het nog niet gepusht, krijg een foutmelding in GitHub)