/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Observer patten !!!! det er mig igen :)
Fra : ODB


Dato : 16-04-03 08:20

Tak for de andre svar om Composite patten

Men nu er jeg så ude i et andet problem jeg skal implimentere et observer
patten i mit lille program, og der har jeg nogle problemer:

Spørgsmål
Er det normalt og lave sit observer patten i en seperat klasse eller er
det okay at smide det ind i sin exsisterende Medlemsregiser klasse for
nogle medlemmer ?

Lige nu har jeg så bare lige prøve og begynde på det i min eksisterende
medlemsregister klasse, og jeg har et lille eksempel fra min lærer men
jeg har et problem med at få den løsning til at virke, se nederst

Mit problem er at jeg ikke kan lave en instands af PropertyChangeListener
som min lærer gør i konstruktoren, hvad går galt !!!
Den skriver at jeg ikke kan lave en instands af den?


import java.beans.*;

public class EventSource {
private int count = 0;
private PropertyChangeListener pcl;

public EventSource() {
pcl = new PropertyChangeListener(this);
}

public void addPropertyChangeListener(PropertyChangeListener p) {
pcl.addPropertyChangeListener(p);
}

public void removePropertyChangeListener(PropertyChangeListener p) {
pcl.removePropertyChangeListener(p);
}

public void increaseCount() {
int old = count;
count = count + 1;
pcl.firePropertyChange("Count", old, count);
}
}

Tak for hjælpen ODB


 
 
Robert Larsen (16-04-2003)
Kommentar
Fra : Robert Larsen


Dato : 16-04-03 09:32

ODB wrote:
> Tak for de andre svar om Composite patten
>
> Men nu er jeg så ude i et andet problem jeg skal implimentere et observer
> patten i mit lille program, og der har jeg nogle problemer:
>
> Spørgsmål
> Er det normalt og lave sit observer patten i en seperat klasse eller er
> det okay at smide det ind i sin exsisterende Medlemsregiser klasse for
> nogle medlemmer ?
>
> Lige nu har jeg så bare lige prøve og begynde på det i min eksisterende
> medlemsregister klasse, og jeg har et lille eksempel fra min lærer men
> jeg har et problem med at få den løsning til at virke, se nederst
>
> Mit problem er at jeg ikke kan lave en instands af PropertyChangeListener
> som min lærer gør i konstruktoren, hvad går galt !!!
> Den skriver at jeg ikke kan lave en instands af den?
>
>
> import java.beans.*;
>
> public class EventSource {
> private int count = 0;
> private PropertyChangeListener pcl;
>
> public EventSource() {
> pcl = new PropertyChangeListener(this);
> }
>
> public void addPropertyChangeListener(PropertyChangeListener p) {
> pcl.addPropertyChangeListener(p);
> }
>
> public void removePropertyChangeListener(PropertyChangeListener p) {
> pcl.removePropertyChangeListener(p);
> }
>
> public void increaseCount() {
> int old = count;
> count = count + 1;
> pcl.firePropertyChange("Count", old, count);
> }
> }
>
> Tak for hjælpen ODB
>

PropertyChangeListener er ikke en klasse, men et interface. Et interface
indeholder ikke en implementering af metoderne men kun selve
metodehovederne og du kan derfor ikke instansiere det. Du er nødt til at
_arve_ fra interfacet, eller som det hedder i Java speak, implementere
interfacet:

import java.beans.*;

public class MyListener implements PropertyChangeListener
{
public void propertyChange(PropertyChangeEvent evt)
{
//Do what needs done when the property described in 'evt' change.
}
}

Så kan du instansiere MyListener og tilføje den som listener på whatever
du nu er interesseret i.

VH
Robert


Mikael Nørrelund And~ (16-04-2003)
Kommentar
Fra : Mikael Nørrelund And~


Dato : 16-04-03 13:14

ODB wrote:
> Tak for de andre svar om Composite patten

Hvis du kunne bruge siden fra sidste tråd, så er der
mere hjælp der:
http://www.docjava.dk/patterns/observer/observer.htm

--
Mvh.
Mikael Nørrelund Andersen

Fjern 'removespamfilter' ved svar til email.


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408903
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste