Prírodou inšpirované algoritmy

študijné materiály pre projekt mobilnej triedy umelej inteligencie

Späť ku kurzom triedy
Obsah
Ako urobiť spustiteľnú aplikáciu v jednom .jar súbore?
Ako je možné zastaviť alebo pozastaviť simuláciu z vnútra modelu?
Agenti zobrazujú príliš veľa informácií, keď sú sondované. Ako ich môžem limitovať?
Ako je možné pridať do lišty nástrojov v RePast-e svoje vlastné tlačidlo?
Chcem, aby môj model vykonal akciu X keď stlačím klávesu. Ako to urobiť?
Chcem, aby môj model vykonal akciu X pri kliknutí na tlačidlo na nástrojovej lište. Ako to urobiť?
Chcem vytvoriť vlastný Display. Aký je najlepší spôsob?
Ako má vyzerať metóda main v spustiteľnej triede modelu?



Ostatné kapitoly
Swarm
RePast
LEM
SDML
Eos
DDLab


Tutoriály
 Celulárne automaty
 Morfogenéza
 Simulátory
 Evolučné algoritmy
 Chaos
 Roboty
 Rôzne


Chcem, aby môj model vykonal akciu X pri kliknutí na tlačidlo na nástrojovej lište. Ako to urobiť?

Štandardne má RePast priradené vhodné akcie k stlačeniu jednotlivých tlačidiel na nástrojovej lište. Napriek tomu je možné pridať vlastný kód, ktorý bude pri kliknutí na tlačidlo vykonaný. Môžete ošetriť stlačenie tlačidiel start, stop, pause, step a exit.

Controller c = (Controller)this.getController(); c.addStartListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { System.out.println("start"); } });

Uvedený kód čaká na stlačenie tlačidla start a keď toto nastane vypíše na konzolu slovo start. Každé tlačidlo má vlastnú metódu obsluhu svojho stlačenia (angl. listener); metódu addStopListener() pre tlačidlo stop, metódu addPauseListener() pre tlačidlo pause, atď. Ak potrebujete rozlíšiť, ktoré tlačidlo bolo stlačené (napríklad preto, lebo máte ten istý listener obsluhujúci viac ako jedno tlačidlo), môžete použiť vlastnosť actionCommand triedy JButton (alebo Button), ktorá vracia meno tlačidla. Ak toto meno nebolo nastavené osobitne, je zhodné z popisom tlačidla (label). Napríklad nasledujúci kód:

Controller c = (Controller)this.getController(); c.addStartListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { javax.swing.JButton b = (javax.swing.JButton)evt.getSource(); System.out.println(b.getActionCommand()); } });

vypíše na konzolu slovo start pri stlačené tlačidla start.

Hore
Kontakt: Marek Bundzel