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 .
|