-+-Eirik-+- Skrevet 23. april 2010 Del Skrevet 23. april 2010 (endret) public class HovedKlasse() { private ArrayList<Dressing> liste; private int dressingFerdig; public HovedKlasse() { dressingFerdig = 0; for(int i = 0; i < 10; i++) { liste.add(new Dressing()); liste.get(liste.size() - 1). // legge til listener } } private listenerAvNoeSlag( event ) { if( får beskjed) dressingFerdig++; } public class Dressing() { private boolean erFerdig; public void gjørDressingFerdig() { erFerdig = true; //sende beskjed til listener om at dressingen er ferdig } } Jeg er gankse sikker på at dette kan gjøres med propertyChangeListener, men aner ikke hvordan. Har søkt en del rundt, men finner enten ikke det jeg vil gjøre, eller store vegger med tekst. Som oftest begge deler. Finnes det noen der ute som ville tatt seg tid til å forklare? PS: dette er ikke den egentlige kode, kun et eksempel, da den egentlig koden er relativt stor. Endret 23. april 2010 av [+]Eirik[+] Lenke til kommentar
Øystein T. Skrevet 6. juni 2010 Del Skrevet 6. juni 2010 Litt seint svar her. Betre seinte enn aldri? Du kan bruke Observer og Observable til dette. Eit eksempel er vist under. Prinsippe er at eitt objekt observerer andre objekt som ein kan oberservere (extends Observable). Dei objekta som ein observere må kalle "setChanged()" og "notifyObservers()" når endringar skjer. "notifyObservers" kan ha argument med også. import java.util.ArrayList; import java.util.Observable; import java.util.Observer; public class Hovedklasse implements Observer { private ArrayList<Dressing> liste; private int dressingFerdig; public Hovedklasse() { dressingFerdig = 0; liste = new ArrayList(); for (int i = 0; i < 10; i++) { Dressing d = new Dressing("Dressing " + i); d.addObserver(this); // legg til observer liste.add(d); } } public static void main(String[] a) throws InterruptedException { Hovedklasse h = new Hovedklasse(); h.liste.get(0).gjørDressingFerdig(); Thread.sleep(500); h.liste.get(1).gjørDressingFerdig(); } public void update(Observable o, Object arg) { dressingFerdig++; System.out.println("Ein dressing er ferdig! (" + ((Dressing) o).getNavn() + ")."); } } class Dressing extends Observable { private boolean erFerdig; private String navn; public Dressing(String navn) { this.navn = navn; this.erFerdig = false; } public void gjørDressingFerdig() { erFerdig = true; // Notify observers of change setChanged(); notifyObservers(); } public String getNavn() { return navn; } } Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå