Konkretno, pravim onu igricu memorija gde na tabli treba da pronadjete dva ista simbola. Znaci, otvorite prvo polje, ono stoji dokle god se ne klikne na drugo polje. Ako nisu ista, oba stoje otvorena recimo sekund, pa se zatvore. Napravila sam matricu JButtona. Klikom na neki pokrece se ActionPerformed ciji bitan deo koda izgleda ovako:
public void actionPerformed(ActionEvent event) {
if
//nesto nebitno
}
else {
String koordinate = event.getActionCommand();
Point tacka = new Point();
tacka = nadjiKoordinate(koordinate); //ActionCommand mi kaze koje su koordinate dugmeta u matrici
timer = new Timer(700, new ActionListener() {
public void actionPerformed(ActionEvent e) {
buttonPolja[igra.getOtvoreno(0).x][igra.getOtvoreno(0).y].setIcon(upitnik);
buttonPolja[igra.getOtvoreno(1).x][igra.getOtvoreno(1).y].setIcon(upitnik);
labelPokusaji.setText("Broj pokusaja: " + Integer.toString(igra.getBrojPokusaja()));
timer.stop();
}
});
if (igra.getStanje(tacka)==false) {
int pomocna = igra.proveri(tacka);
//ako je pomocna 0, kliknuto je na vec otvoreno polje,
//ako je 1, otvoreno je 1. polje, ako je 2, otvoreno je 2. polje
if (pomocna>0) {
buttonPolja[tacka.x][tacka.y].setIcon(igra.getSlike(igra.getTip(tacka)));
if (pomocna==2) {
timer.restart();
}
if (igra.getBrojPreostalihPolja()==0) {
krajIgre();
}
}
}
}
}
Ovo s tajmerom je radjeno potpuno naslepo, bukvalno sam nagadjala sta da radim. Kada igrica krene, to radi kako treba, kad se otvore 2 polja, program saceka sekundu, pa vrati na staro stanje itd. Posle izvesnog broja poteza tj. izvesnog vremena, ta sekunda se sve vise smanjuje i na kraju potpuno prestaje da menja ImageIcon-e. Ja stvarno ne kapiram o cemu se tu radi i pokusala sam da trazim na guglu, ali mi i dalje stvari nisu najjasnije. U sustini, ako mi tajmeri nisu potrebni i mogu da zaustavim program na odredjeni vremenski interval bez njih (a da to nije Thread.sleep() jer ne radi kako treba), otvorena sam za predloge :)