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